Tabla con gráfica sin valores fijos (Proyecto1)

En la entrada anterior se manejaron valores fijo, ahora, ¿que pasa si el usuario decide ingresar otras muestras?.
Como ya se ha visto, para poder trabajar con gráficas y con arreglos se requiere el pylab.

Para poder realizar la tabla, con todo y tabulaciones y lineas, importe tabulate, para poder borrar la pantalla y se visualizara mejor la tabla, después del ingreso de datos, importe os.
El tabulate se descarga directamente de la página de python, y en el cmd se pone pip install tabulate.

Para poner los datos de la lecturas en la tabla, se requiere pasar la lista donde se guardaron los datos convertirla en una matriz transpuesta. 

Cabe destacar que para este tipo de gráficas, que en especifico son de control, muy usadas para verificar calidad, ya hay datos fijos como coeficientes, que se consiguen según el subgrupo manejado, aquí se manejarán subgrupos de 4.
 Bueno en el código se ve la solución:
NOTA: Checar tabla de coeficientes de la entrada anterior

  • Código:
from pylab import *
from tabulate import *
import os

plt.ioff()
dicc={}
promediog=[]
promind=[]
promi=[]
proms=[]
lista=[]
lis=[]
indice=[]
rind=[]
rango1=0
rangoind=[]
rangofil=[]
rangotot=[]

print("""\t\tDe acuerdo con la investigación realizada respecto de datos\n 
que involucran revision de calidad, dependiendo de los subgrupos manejados,\n
que en este caso seran indicados, hay una tabla de los coeficientes de A2, D3, D4,\n
por lo que ya son valores fijos, favor de verificar la tabla\n""")

A2=float(input("Ingrese el valor de A2: "))
D3=float(input("Ingrese el valor de D3: "))
D4=float(input("Ingrese el valor de D4: "))


n=int(input("Agregue numero de muestras: "))
col=int(input("Indique el numero de subgrupos: "))
print()

#PARA EL INDICE
for w in range(n):
w=w+1
indice.append(w)

#PARA LLENADO DE MUESTRAS
for  i in range(n):
for j in range(col):
print("Ingrese datos para la muestra %s"%str(i+1))
z=int(input())
lis.append(z)
lis.sort()
if (len(lis)==col):
lista.append(lis)
lis=[]

promediog.append(z)
promi.append(z)
proms.append(promi)
if(len(proms)==col):
dato2=np.array(proms)
Prom=dato2.mean()
promind.append(Prom)
proms=[]
promi=[]

rangotot.append(z)
rind.append(z)
rind.sort()
if(len(rind)==col):
rango1= rind[-1]- rind[0]
rangofil.append(rango1)
rind=[]
print()

#PROM GENERAL
dato=np.array(promediog)
promgeneral=dato.mean()

#RANGOS GENERAL
dato3=np.array(rangofil)
rangogen=dato3.mean()

#LIMPIO PANTALLA 
os.system('cls')

#FORMULAS
LCIX=promgeneral-(A2*rangogen) #981.2
LCIR=D3*rangogen #0
LCSX=promgeneral+(A2*rangogen) #1018
LCSR=D4*rangogen #57.5

#PASAR LISTAS A MATRIZ Y A DICCIONARIO
dato1=np.array(lista)
dato1.transpose()
dicc['c1']=promind
dicc['c2']=rangofil

#ENCABEZADOS TABLA 1
encabezado=["No de muestra"]
for h in range(col):
s="Lectura en Ohms"
encabezado.append(s)

#ENCABEZADOS TABLA 2
encabezado2=["No. de muestra","PROM","RANG"]

print(tabulate(dato1, headers=encabezado, showindex=indice,tablefmt='fancy_grid'))
print(tabulate(dicc, headers=encabezado2, showindex=indice,tablefmt='fancy_grid'))

#LCIX --> 981.2
y1=[]
y1.append(LCIX)
y1=(y1) *n
y1=np.array(y1)

#LCSX --> 1018
y2=[]
y2.append(LCSX)
y2=(y2) *n
y2=np.array(y2)

#LCIR --> 0
y3=[]
y3.append(LCIR)
y3=(y3) *n
y3=np.array(y3)

#LCSR --> 57.5
y4=[]
y4.append(LCSR)
y4=(y4) *n
y4=np.array(y4)

#MINI TABLA
dicc2={'M1':['PROM','LCI','LCS'],'M2':[[promgeneral,rangogen],[LCIX,LCIR],[LCSX,LCSR]],}
print()
print(tabulate(dicc2, tablefmt='simple'))

#PARA GRAFICAR PROMEDIO GENERAL
y8=[]
y8.append(promgeneral)
y8=(y8) *n
y8=np.array(y8)

#PARA GRAFICAR RANGO GENERAL
y9=[]
y9.append(rangogen)
y9=(y9) *n
y9=np.array(y9)

plt.subplot(1,2,1)
#PARTE DE LAS X
plt.plot(y1, label="LCI", marker='^', linestyle=':', color='b')
plt.plot(y2, label="LCS", marker='p', linestyle=':', color='g')
plt.plot(y8, label="X", marker='x', linestyle='-', color='r')
plt.plot(promind, label="PROM", marker='o', linestyle='-', color='c')
plt.legend(loc="upper right")
plt.title("GRAFICA PARA LOS PROMEDIOS")
plt.xlabel("Muestras\n(la muestra 0 representa a la muestra 1 y asi sucesivamente)")
plt.ylabel("Lecturas")
plt.grid(True)

plt.subplot(1,2,2)
#PARTE DE LAS R
plt.plot(y3, label="LCI", marker='h', linestyle='--', color='m')
plt.plot(y4, label="LCS", marker='+', linestyle='--', color='y')
plt.plot(y9, label="X", marker='*', linestyle='-', color='k')
plt.plot(rangofil, label="PROM", marker='D', linestyle='-', color='b')
plt.title("GRAFICA PARA LOS RANGOS")
plt.xlabel("Muestras\n(la muestra 0 representa a la muestra 1 y asi sucesivamente)")
plt.ylabel("Rangos")
plt.legend(loc="upper right")
plt.grid(True)

plt.show()
plt.ion()

  • Ingreso de datos:


  • Tabla tabulada:
Aqui se tuvo que poner en tablas diferentes el promedio y rangos.


  • Gráficas:



Tabla con gráfica con valores fijos (Proyecto 1)

Como ya se ha visto, para poder trabajar con gráficas y con arreglos se requiere el pylab.
Para poder realizar la tabla, con todo y tabulaciones y lineas, importe tabulate, para poder borrar la pantalla y se visualizara mejor la tabla, después del ingreso de datos, importe os.
El tabulate se descarga directamente de la página de python, y en el cmd se pone pip install tabulate.
Cabe destacar que para este tipo de gráficas, que en especifico son de control, muy usadas para verificar calidad, ya hay datos fijos como coeficientes, que se consiguen según el subgrupo manejado, aquí se manejarán subgrupos de 4, se puede ver en la imagen a continuación:


La tabla con la que se probaron los cálculos fue la siguiente:



Las formulas que se requieren son las siguientes:



  • CÓDIGO:
from pylab import *
from tabulate import *
import os

plt.ioff()

indice=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
A2=0.729
D3=0
D4=2.282
print("""\t\tDe acuerdo con la investigación realizada respecto de datos\n 
que involucran revision de calidad, dependiendo de los subgrupos manejados,\n
que en este caso son 4 subgrupos, hay una tabla de los coeficientes de A2, D3, D4,\n
por lo que ya son valores fijos, los cuales son:\n
A2=""",A2,
"""\t\tD3=""",D3, 
"""\t\tD4=""",D4)
print("""\nNOTA: cuando termine de ingresar los datos se limpiara pantalla y solo se vera la tabla
\nde contenido, con los datos ordenados de menor a mayor para mejor manejo para los calculos
\nrequeridos\n""")

print()

#OBTENCION DE DATOS
f1=[] 
f2=[] 
f3=[] 
f4=[] 
f5=[]
f6=[]
f7=[]
f8=[]
f9=[]
f10=[]
f11=[]
f12=[]
f13=[]
f14=[]
f15=[]

for fil in range(15):
for col in range(4):
print("Ingrese datos para la muestra %s"%str(fil+1))
z=int(input())
if(fil+1==1):
f1.append(z)
f1.sort()
elif(fil+1==2):
f2.append(z)
f2.sort()
elif(fil+1==3):
f3.append(z)
f3.sort()
elif(fil+1==4):
f4.append(z)
f4.sort()
elif(fil+1==5):
f5.append(z)
f5.sort()
elif(fil+1==6):
f6.append(z)
f6.sort()
elif(fil+1==7):
f7.append(z)
f7.sort()
elif(fil+1==8):
f8.append(z)
f8.sort()
elif(fil+1==9):
f9.append(z)
f9.sort()
elif(fil+1==10):
f10.append(z)
f10.sort()
elif(fil+1==11):
f11.append(z)
f11.sort()
elif(fil+1==12):
f12.append(z)
f12.sort()
elif(fil+1==13):
f13.append(z)
f13.sort()
elif(fil+1==14):
f14.append(z)
f14.sort()
elif(fil+1==15):
f15.append(z)
f15.sort()
print()

#LIMPIO PANTALLA 
os.system('cls')

#LAS LISTAS SE HACEN ARREGLOS
dato1=np.array(f1)
dato2=np.array(f2)
dato3=np.array(f3)
dato4=np.array(f4)
dato5=np.array(f5)
dato6=np.array(f6)
dato7=np.array(f7)
dato8=np.array(f8)
dato9=np.array(f9)
dato10=np.array(f10)
dato11=np.array(f11)
dato12=np.array(f12)
dato13=np.array(f13)
dato14=np.array(f14)
dato15=np.array(f15)

#RANGO DE CADA FILA
rango1=dato1[-1]-dato1[0]
rango2=dato2[-1]-dato2[0]
rango3=dato3[-1]-dato3[0]
rango4=dato4[-1]-dato4[0]
rango5=dato5[-1]-dato5[0]
rango6=dato6[-1]-dato6[0]
rango7=dato7[-1]-dato7[0]
rango8=dato8[-1]-dato8[0]
rango9=dato9[-1]-dato9[0]
rango10=dato10[-1]-dato10[0]
rango11=dato11[-1]-dato11[0]
rango12=dato12[-1]-dato12[0]
rango13=dato13[-1]-dato13[0]
rango14=dato14[-1]-dato14[0]
rango15=dato15[-1]-dato15[0]

#PROMEDIO DE CADA FILA
prom1=dato1.mean()
prom2=dato2.mean()
prom3=dato3.mean()
prom4=dato4.mean()
prom5=dato5.mean()
prom6=dato6.mean()
prom7=dato7.mean()
prom8=dato8.mean()
prom9=dato9.mean()
prom10=dato10.mean()
prom11=dato11.mean()
prom12=dato12.mean()
prom13=dato13.mean()
prom14=dato14.mean()
prom15=dato15.mean()

#IMPRIMIR TABLA
dicc={'c1':[f1[0],f2[0],f3[0],f4[0],f5[0],f6[0],f7[0],f8[0],f9[0],f10[0],f11[0],f12[0],f13[0],f14[0],f15[0]],
  'c2':[f1[1],f2[1],f3[1],f4[1],f5[1],f6[1],f7[1],f8[1],f9[1],f10[1],f11[1],f12[1],f13[1],f14[1],f15[1]],
  'c3':[f1[2],f2[2],f3[2],f4[2],f5[2],f6[2],f7[2],f8[2],f9[2],f10[2],f11[2],f12[2],f13[2],f14[2],f15[2]],
  'c4':[f1[3],f2[3],f3[3],f4[3],f5[3],f6[3],f7[3],f8[3],f9[3],f10[3],f11[3],f12[3],f13[3],f14[3],f15[3]],
  'c5':[prom1,prom2,prom3,prom4,prom5,prom6,prom7,prom8,prom9,prom10,prom11,prom12,prom13,prom14,prom15],
  'c6':[rango1,rango2,rango3,rango4,rango5,rango6,rango7,rango8,rango9,rango10,rango11,rango12,rango13,rango14,rango15]}

print(tabulate(dicc, headers=["No. Muestra", "Lect en OHMS 1","Lect en OHMS 2","Lect en OHMS 3","Lect en OHMS 4","PROM","RANG"], 
showindex=indice,tablefmt='fancy_grid'))

#PROMEDIO DE PROMEDIOS Y RANGOS
promgeneral=(prom1+prom2+prom3+prom4+prom5+prom6+prom7+prom8+prom9+prom10+prom11+prom12+prom13+prom14+prom15)/15 #999.6
promrangog=(rango1+rango2+rango3+rango4+rango5+rango6+rango7+rango8+rango9+rango10+rango11+rango12+rango13+rango14+rango15)/15 #25,2

#FORMULAS
LCIX=promgeneral-(A2*promrangog) #981.2
LCIR=D3*promrangog #0
LCSX=promgeneral+(A2*promrangog) #1018
LCSR=D4*promrangog #57.5

#IMPRIMIR MINI TABLA DE ABAJO
dicc2={'M1':['PROM','LCI','LCS'],'M2':[[promgeneral,promrangog],[LCIX,LCIR],[LCSX,LCSR]],}
print(tabulate(dicc2, tablefmt='simple'))

#LCIX --> 981.2
y1=[]
y1.append(LCIX)
y1=(y1) *15
y1=np.array(y1)

#LCSX --> 1018
y2=[]
y2.append(LCSX)
y2=(y2) *15
y2=np.array(y2)

#LCIR --> 0
y3=[]
y3.append(LCIR)
y3=(y3) *15
y3=np.array(y3)

#LCSR --> 57.5
y4=[]
y4.append(LCSR)
y4=(y4) *15
y4=np.array(y4)

#PARA GRAFICAR PROMEDIOS IND.
L=[]
L.append(prom1) 
L.append(prom2)
L.append(prom3)
L.append(prom4) 
L.append(prom5)
L.append(prom6)
L.append(prom7)
L.append(prom8)  
L.append(prom9)
L.append(prom10)
L.append(prom11)
L.append(prom12) 
L.append(prom13)
L.append(prom14)
L.append(prom15)  
L=np.array(L)

#PARA GRAFICAR PROMEDIO GENERAL
y8=[]
y8.append(promgeneral)
y8=(y8) *15
y8=np.array(y8)

#PARA GRAFICAR RANGO GENERAL
y9=[]
y9.append(promrangog)
y9=(y9) *15
y9=np.array(y9)

#PARA GRAFICAR RANGOS INDIVIDUALES
rind=[]
rind.append(rango1) 
rind.append(rango2) 
rind.append(rango3) 
rind.append(rango4)
rind.append(rango5) 
rind.append(rango6) 
rind.append(rango7) 
rind.append(rango8)
rind.append(rango9) 
rind.append(rango10) 
rind.append(rango11) 
rind.append(rango12)
rind.append(rango13) 
rind.append(rango14) 
rind.append(rango15) 
rind=np.array(rind)

plt.subplot(1,2,1)
#PARTE DE LAS X
plt.plot(y1, label="LCI", marker='^', linestyle=':', color='b')
plt.plot(y2, label="LCS", marker='p', linestyle=':', color='g')
plt.plot(y8, label="X", marker='x', linestyle='-', color='r')
plt.plot(L, label="PROM", marker='o', linestyle='-', color='c')
plt.legend(loc="upper right")
plt.title("GRAFICA PARA LOS PROMEDIOS")
plt.xlabel("Muestras\n(la muestra 0 representa a la muestra 1 y asi sucesivamente)")
plt.ylabel("Lecturas")
plt.grid(True)

plt.subplot(1,2,2)
#PARTE DE LAS R
plt.plot(y3, label="LCI", marker='h', linestyle='--', color='m')
plt.plot(y4, label="LCS", marker='+', linestyle='--', color='y')
plt.plot(y9, label="X", marker='*', linestyle='-', color='k')
plt.plot(rind, label="PROM", marker='D', linestyle='-', color='b')
plt.title("GRAFICA PARA LOS RANGOS")
plt.xlabel("Muestras\n(la muestra 0 representa a la muestra 1 y asi sucesivamente)")
plt.ylabel("Rangos")
plt.legend(loc="upper right")
plt.grid(True)

plt.show()
plt.ion()


  • Ejecución de ingresos de datos:

 


  • Visualización de la Tabla de contenido:



  • Gráficas:                            

While's (5)

A continuación se vera como se usan los while's.

FORMA 1
Dentro de los while's estableces condiciones de paro del ciclo.

  • Código y ejecución:
#con condiciones de paro
edad=0
while(edad<18):
edad=edad+1
print("edad vale",edad)
if(edad%2 ==0):
print("edad par es",edad)
continue #no hace todo lo de abajo
print("Saltare si no tal vez")
print("Esta saltara nooo, siiii")

print("Felicidades eres mayor de edad",edad)


FORMA 2
Dentro de los while's puedes ir llenando listas vacias.
  • Código y ejecución:
#para llenar listas vacias
cien=[]
par=[]
impar=[]
c=1

while(c<101):
cien.append(c)
if(c%2 ==0):
par.append(c)
else:
impar.append(c)
c+=1
print("Valores totales")
print(cien)
print("Pares")
print(par)
print("Impares")
print(impar)

FORMA 3
Aquí hay un ejemplo del uso de los while's.
  • Código y ejecución:
#escriba un programa que pida dos numeros enteros
#continue mientras sean cada vez mas grandes
primero=int(input("Dame un numero: "))
segundo=int(input("Dame otro numero mayor que el primero: "))

while(segundo>primero):
primero=segundo
segundo=int(input("Escriba un numero mayor que "+str(primero)+ " "))
print()
print(segundo, "no es mayor que", str(primero)+".")
print("Programa terminado")

#escriba un programa que pida la cantidad de numeros
#positivos hasta que sea la cantidad que usted decida de positivo

cont=0
i=int(input("Dame un numero positivo: "))
while(cont<5):
if(i>0):
i=int(input("Dame un numero positivo: "))
cont=cont+1
else:
print("Ingreso negativos")
break
print("Programa terminado con ",str(cont)+ " numeros positivos")

FORMA 4
Aquí hay otro ejemplo del uso de los while's.
  • Código y ejecución:
#escriba un programa que pida un valor limite positivo y a continuacion
#pida numeros hasta que la suma de los numeros introducidos supere el limite inical

suma=0
i=int(input("Dame un limite: "))
while(suma<i):
j=int(input("Dame un numero: "))
suma=suma+j


print("Programa terminado")



NOTA:
Los DoWhile no existen en Python, si quiere ingresar uno marcará error.

  • Código:

#el do while como tal no esta registrado
a=0
do:
print(a)
a++

while(a!=3)

El uso de for's (6)

FORMA 1
Usando range en el for. Y agregando un ejemplo con un elif.
  • Código y ejecución:
#uso de elif y for
x=20
if(x<0):
x=0
print("negativo cambiado a cero")
elif(x==0):
print("sencillo")
elif(x==1):
print("mas")

palabras=['gatos','ventana','defensas']

#con for w in = for i=0; i<=2; i++
#w es la posicion del elemento en la lista, empieza en cero
#en el print te pone lo que esta en esa posicion y la longitud de ese elemento
for w in palabras:
print(w,len(w))

#el range es la condicion i<=2; i++
#imprime de 0 a . con salto de linea
for i in range(5):
print(i)



FORMA 2
Usando len y range para imprimir posiciones.
  • Código y ejecución:
#uso de len y range
#imprime con /n del 0 al 4
for i in range(5):
print(i)
#imprime con /n posicion y cadena
a=['maria','tenia','un','corderito']
for c in range(len(a)):
print("%d %s"%(c, a[c]))

#poner m a r i a
for m in range(len(a[0])):
print("%s "%(a[0][m]))



FORMA 3
Usando for's anidados, y se ve un ejemplo de como también funciona range.
  • Código y ejecución:
#for anidado
#range(inicio,fin), no incluye el 10, 1 al 9
for n in range(2,10):
for x in range(2,n):
if ((n%x)==0):
print("n%d igual a %d * %d "%(n,x,n//x))
break
else:
print("n es primo %d"%(n))
#print("el valor de n es %d y el de x es %d"%(n,x))
num=int(input("\nDame un numero para una tabla: "))
for y in range(num,10):
for i in range(1,10):
print("%d * %d = %d"%(num,i,num*i))
print()
num=num+1

#tabla de multiplicar del numero pedido al usuario, tabla del 5, 6, 7, 8, 9


FORMA 4
Usando el range con un inicio y con un fin.
  • Código y ejecución:
#uso de range con inicio y fin
#numero par o impar
for num in range(2,10):
if (num%2==0):
print("par %d"%(num))
continue #salta la siguiente linea inmediata

print("impar %d"%(num))



FORMA 5
Se ve diferentes formas de como usar las cadenas con for's .
  • Código y ejecución:
#el end no hace salto de linea
#primer for
print("inicio")
#imprime 3 veces con [0,1,2]
for i in [0,1,2]:
print("hola",end="") 
print()
print("final")

#segundo for
print("\ninicio")
for i in [1,1,1]:
print("hola2",end="")
print()
print("final")

#tercer for
#no lo imprime nada porque la lista esta vacia
print("\ninicio")
for i in []:
print("hola3",end="")
print()
print("final")

#cuarto for
print("\ninicio")
for i in [3,4,5]:
print("hola4 %d"%(i))
print()
print("final")

#quinto for
print("\ninicio")
for i in ["Susi","Lopez",100]:
print("hola5 %s"%(i))
print()
print("final\n")

#sexto for
for numero in [1,2,3,4,5]:
print(" %d * %d = %d"%(numero, numero, numero**2))
print()
print("final")

#septimo for
#la i es la posicion del caracter, i=0 --> S
for i in "SUSANA":
print("Dame una %s\n"%(i))
print()
print("Que dice %s"%("SUSANA"))
print("mas fuerte %s"%("SUSANA"))
for i in [1,1,1]:
print("Tres veces %s"%("SUSANA"))

 

FORMA 6
Es un ejemplo de como pedir contraseñas con for's .
  • Código y ejecución:
#si la ingresa mal 3 veces marcara error de ingreso
u='Susilopez'
c='galleta'

for i in range(1,4):
a=input("Ingrese su usuario: ")
if (a==u):
b=input("\nIngrese contraseña: ")
break
print("Error usuario")

for n in range(1,4):
if(b==c):
print("\nBienvenida Susi Lopez")
break
else:
print("Error contraseña")
b=input("\nIngrese contraseña: ")



.lower y .upper

Al poner cadena.lower( ) hace que los elementos que se le marcan se pongan en minúsculas, y con cadena.upper( ) las hace mayúsculas.
  • Código:
#unidad 3, manejo de elementos de cadenas
cadena="Texto"
print(cadena)
print(cadena[1])
print(len(cadena))
print(cadena.lower())  #hace minusculas
print(cadena.upper())  #hace mayusculas
numero=7.9867
num=str(numero)
print(str(numero))
print("numero %s"%num[0])

var1="hola"
var2="Ariadna"
#var3=var1+var2
print(var1+' '+var2)

#Juan Daniel Muñoz --> JUAN DANIEL MUÑOZ --> Juan Daniel MUÑOZ
cadena2="Juan Daniel Muñoz"
print(cadena2.upper())
n1=cadena2[:12]
nom=cadena2[12:]
n2=nom.upper()
print(n1 + n2)
  • Ejecución:

Dibujar figuras

En Python, se debe importar pygame, porque dibujar para python es más fácil ejecutarlo si cree que es un juego, a medida que se ve el código se explica el porque se ponen ciertas cosas.
  • Código:

#para poder hacer figuras en python
import pygame
from pygame.locals import *
import sys
import math
#el asterisco importa todo lo de la libreria
#import random
from random import *
AZUL=(9,35,67)
VERDEPASTO=(17,99,67)
VERDE=(10,255,10)
BLANCO=(222,224,200)
GRIS=(186,186,177)
GRISCASTILLO=(158,158,158)
NEGRO=(2,3,3)
ROJO=(255,0,0)
CAFE=(90,50,15)
TRUENO=(19,45,77)

Dimensiones=(800,800)

#Linea: La siguiente linea de codigo dibuja una linea de color verde desde el punto [10,
#donde el primer valor de cada lista es la coordenada en x y el segundo la coordenada
#indica el grosor de la linea

def dibujar_fig(pantalla,pos):
pygame.draw.line(pantalla,VERDE,[10,10],[650,470],2)
pygame.draw.rect(pantalla,ROJO,[150,50,400,400],0)
pygame.draw.circle(pantalla,CAFE,[325,270],15,0)
pygame.draw.polygon(pantalla,TRUENO,[[350,10],[20,400],[680,400]],0)
pygame.draw.arc(pantalla,GRIS,[150,50,400,400],0,math.pi,2)

#Rectangulo: para dibujar un rectangulo, igual que para la linea el primer parametro es la variable Pantalla
#despues el color de la figura, y en este caso para dibujar un rectangulo usamos una lista con cuatro elementos
#de los cuales el primer par corresponden a las coordenadas (x,y) de la esquina superior izquierda, los otros dos
#indican el tamaño de la figura (ancho y alto). Asi la siguiente dibuja un rectangulo que en realidad es un cuadrado
#con coordenadas iniciales  x= 150, y= 50, con un ancho y alto de 400

#Circulo: a esta funcion se le indica con una lista de dos elementos el centro del circulo, despues el radio y de igual
#forma que la linea el ultimo parametro es el grosor de la linea, con la excepcion de que si usamos 0
#el circulo se dibujará con relleno (esto funciona tambien para para la funcion rect).

def dibujar_txt(pantalla,texto,color):
Fuente=pygame.font.Font(None,25)
Texto=Fuente.render(texto,True,color)
pantalla.blit(Texto,[250,10])

def main():
pygame.init()
pantalla=pygame.display.set_mode(Dimensiones)
pygame.display.set_caption("INST TEC AGS")

game_over=False
reloj=pygame.time.Clock()

while not game_over:
for evento in pygame.event.get():
if evento.type==pygame.QUIT:
game_over=True
pantalla.fill((255,255,255))
dibujar_fig(pantalla,[25,25])
dibujar_txt(pantalla,"Prog. Visual",TRUENO)

pygame.display.flip()
reloj.tick(60)
pygame.quit()


if __name__=="__main__":
main()

  • Ejecución:




Comparaciones con if, else, elif (5)

Con la toma de decisiones usando el famoso if, el programa ve si se cumple la condición del if, sino (else) realiza otra cosa. El elif se utiliza para hacer una pregunta en un else, pero hay que recordar que al usar el elif no se estan haciendo if anidados. 
A continuación en 5 códigos se verán 5 formas diferentes de usar lo anteriormente dicho:

FORMA 1
Usando un if sencillo
  • Código y ejecución:
#if sencillo
ana=16
if ana>=18:
print("Mayor de edad")
else:
print("Menor de edad")


FORMA 2
Usando elif.
  • Código y ejecución:
#elif
a=25
if(a<22):
print("Dentro del if positivo")
#es una pregunta en un else, un if dentro de un else
elif(a==25):
print("dentro del elif")
else:
print("dentro del else")
#if anidado
'''
b=20
if(b):
else if (b==14):
print()
  #else
'''


FORMA 3
La forma en que se pueden usar if's independientes
  • Código y ejecución:
#if independiente
age=21
if age>16:
print("Apenas puedes conducir")
else:
print("Eres joven para conducir")

if age>=21:
print("puedes conducir con seguro")
elif age>=16:
print("Puedes conducir con permiso o licencia")
else:
print("NO puedes conducir")


FORMA 4
Utilizando condicionales dentro de la condición del if o el elif.
  • Código y ejecución:
#and or not
age=30
if((age>=1) and (age<=18)):
print("niño, pubertillo o casi adulto")
elif((age==21) and (age<=18)):
print("adulto, adulto tercera edad")
elif not(age==30):
print("EStas ya casado o lo haras con tu mejor amiga")
else:
print("Tendremos fiesta??")



FORMA 5
Ejemplo utilizando operadores relacionales.
  • Código y ejecución:
#ejemplo con elif
edad=int(input("Ingrese edad: "))
if edad==16:
print("Permiso para conducir en Mx")
elif((edad<=18) and (edad>=16)):
print("No entra a fiestas pero puede conducir")
elif((edad>=18) and (edad<21)):
print("Puede votar y conducir en Mx")
elif((edad>=21) and (edad<24)):
print("Vota, bebe alcohol en el extranjero y conduce en MX")
elif (edad>=24):
print("Vota, bebe extranjero y conduce en Europa y MX")
else:
print("Nada")


Formulas de área y volumen de figuras empleando funciones

Mediante el uso de funciones se puede guardar información, ya si la requiero la llamo con su nombre y los dos paréntesis ( ).
Las figuras son las siguientes:

  • Código:
import math
pi=(math.pi)
raiz2=(math.sqrt(2))
raiz3=(math.sqrt(3))

def cuadrado():
lado=int(input("Dame el valor de lado: "))
cuadro=[]
cuadro.append(lado)
area=cuadro[0]*cuadro[0]
cuadro.append(area)
print(cuadro)

def triangulo():
trian=[]
tbase=int(input("Dame la base: "))
taltura=int(input("Dame la altura: "))
trian.append(tbase)
trian.append(taltura)
tarea=(trian[0]*trian[1])/2
trian.append(tarea)
print(trian)

def rectangulo():
rect=[]
rbase=int(input("Dame la base: "))
raltura=int(input("Dame la altura: "))
rect.append(rbase)
rect.append(raltura)
rarea=(rect[0]*rect[1])
rect.append(rarea)
print(rect)

def sector_circular():
sec=[]
ra=int(input("Dame el radio: "))
n=int(input("Dame el valor de n: "))
sec.append(pi)
sec.append(ra)
sec.append(n)
scarea= (sec[0]*(sec[1]**2)/360)*sec[2]
sec.append(scarea)
print(sec)

def circulo():
circ=[]
rad=int(input("Dame el radio: "))
circ.append(rad)
circ.append(pi)
carea=(circ[0]**2 *circ[1])
circ.append(carea)
print(circ)

def romboide():
romboi=[]
robase=int(input("Dame la base: "))
roaltura=int(input("Dame la altura: "))
romboi.append(robase)
romboi.append(roaltura)
roarea=(romboi[0]*romboi[1])
romboi.append(roarea)
print(romboi)

def rombo():
rom=[]
roD=int(input("Dame la Diagonal mayor: "))
rod=int(input("Dame la diagonal menor: "))
rom.append(roD)
rom.append(rod)
romarea=rom[0]*rom[1]*0.5
rom.append(romarea)
print(rom)

def trapecio():
tra=[]
traB=int(input("Dame la base mayor: "))
trab=int(input("Dame la base menor: "))
trah=int(input("Dame la altura: "))
tra.append(traB)
tra.append(trab)
tra.append(trah)
trarea=(tra[0]+tra[1])/2 *tra[2]
tra.append(trarea)
print(tra)

def poligono_reg():
pol=[]
polP=int(input("Dame el perimetro: "))
pola=int(input("Dame el apotema: "))
pol.append(polP)
pol.append(pola)
polarea=pol[0]*pol[1]*0.5
pol.append(polarea)
print(pol)

def corona_circ():
cor=[]
corR=int(input("Dame el valor de Radio mayor: "))
corr=int(input("Dame el valor de radio menor: "))
cor.append(corR)
cor.append(corr)
cor.append(pi)
corarea=(cor[0]**2 - cor[1]**2)*cor[2]
cor.append(corarea)
print(cor)

def cubo():
cub=[]
lacu=int(input("Ingrese el valor del lado: "))
cub.append(lacu)
cuarea=(cub[0]**2)*6
cuvol=cub[0]**3
cub.append(cuarea)
cub.append(cuvol)
print(cub)

def cilindro():
cil=[]
cilra=int(input("Ingrese el radio: "))
cilh=int(input("Ingrese la altura: "))
cil.append(cilra)
cil.append(cilh)
cil.append(pi)
cilarea=2*cil[2]*cil[0]*(cil[1]+cil[0])
cilvol=(cil[2]*cil[0]**2) * cil[1]
cil.append(cilarea)
cil.append(cilvol)
print(cil)

def ortoedro():
orto=[]
oa=int(input("Ingrese el valor de a: "))
ob=int(input("Ingrese el valor de b: "))
oc=int(input("Ingrese el valor de c: "))
orto.append(oa)
orto.append(ob)
orto.append(oc)
orarea=2*(orto[0]*orto[1] + orto[0]+orto[2] + orto[1]*orto[2])
orvol=orto[0]*orto[1]*orto[2]
orto.append(orarea)
orto.append(orvol)
print(orto)

def cono():
con=[]
conr=int(input("Ingrese el radio: "))
cong=int(input("Ingrese el valor de g: "))
conh=int(input("Ingrese la altura: "))
con.append(conr)
con.append(cong)
con.append(conh)
con.append(pi)
conarea=con[3]*con[0]*(con[1]+con[0])
convol=(1/3)*(con[3]*con[0]**2) * con[2]
con.append(conarea)
con.append(convol)
print(con)

def prisma_recto():
pr=[]
prp=int(input("Ingrese el perimetro: "))
prh=int(input("Ingrese la altura: "))
pra=int(input("Ingrese el apotema: "))
pr.append(prp)
pr.append(prh)
pr.append(pra)
prarea=pr[0]*(pr[1]+pr[2])
prarbase=pr[0]*pr[2]/2
prvol=prarbase*pr[1]
pr.append(prarea)
pr.append(prvol)
print(pr)

def tronco_de_cono():
tron=[]
trong=int(input("Ingrese el valor de g: "))
tronR=int(input("Ingrese el radio mayor: "))
tronr=int(input("Ingrese el radio menor: "))
tronh=int(input("Ingrese la altura: "))
tron.append(trong)
tron.append(tronR)
tron.append(tronr)
tron.append(tronh)
tron.append(pi)
tronarea=tron[4]*(tron[0]*(tron[1]+tron[2]) + tron[1]**2 + tron[2]**2)
tronvol=(1/3)*tron[4]*tron[3]*(tron[1]**2 + tron[2]**2 + tron[1]*tron[2])
tron.append(tronarea)
tron.append(tronvol)
print(tron)

def tetraedro_reg():
tetra=[]
tetral=int(input("Ingrese el lado: "))
tetra.append(tetral)
tetra.append(raiz3)
tetra.append(raiz2)
tetrarea=(tetra[0]**2)*(tetra[1])
tetrvol=((tetra[0]**3)*(tetra[2]))/12
tetra.append(tetrarea)
tetra.append(tetrvol)
print(tetra)

def esfera():
esf=[]
esfr=int(input("Dame el radio: "))
esf.append(esfr)
esf.append(pi)
esfarea=4*(esf[0]**2 *esf[1])
esfvol=(4/3)*(esf[0]**3 *esf[1])
esf.append(esfarea)
esf.append(esfvol)
print(esf)

def octaedro_reg():
octareg=[]
octala=int(input("Ingrese el lado: "))
octareg.append(octala)
octareg.append(raiz3)
octareg.append(raiz2)
octaarea=2*(octareg[0]**2)*(octareg[1])
octavol=((octareg[0]**3)*(octareg[2]))/3
octareg.append(octaarea)
octareg.append(octavol)
print(octareg)

def huso():
hus=[]
husr=int(input("Dame el radio: "))
husn=int(input("Dame el valor de n: "))
hus.append(husr)
hus.append(husn)
hus.append(pi)
husarea=((4*hus[2]*hus[0]**2)/360)*hus[1]
husvol=(4/3)*(hus[2]*hus[0]**3)*hus[1]/360
hus.append(husarea)
hus.append(husvol)
print(hus)

def piramide_rec():
pir=[]
pirp=int(input("Dame el valor de p: "))
pira=int(input("Dame el valor de a: "))
piraa=int(input("Dame el valor de a': "))
pirh=int(input("Dame la altura: "))
pirl=int(input("Dame el valor del lado de la base: "))
pir.append(pirp)
pir.append(pira)
pir.append(piraa)
pir.append(pirh)
lado=pirl
pirarea=(pir[0]/2)*(pir[1]+pir[2])
pirvol=(lado**2)*(pir[3])/3
pir.append(pirarea)
pir.append(pirvol)
print(pir)

def tronco_piramide():
tpir=[]
tpp=int(input("Dame el valor de p: "))
tppp=int(input("Dame el valor de p': "))
tpa=int(input("Dame el valor de a: "))
tph=int(input("Dame la altura: "))
tpl=int(input("Dame el valor del lado de la base: "))
tpir.append(tpp)
tpir.append(tppp)
tpir.append(tpa)
tpir.append(tph)
lado=tpl
tparea=((tpir[0]+tpir[1])/2)*(tpir[2]) + 2*(lado**2)
tpvol=(1/3)*(tpir[3])*(2*(lado**2) + math.sqrt(2*lado**2))
tpir.append(tparea)
tpir.append(tpvol)
print(tpir)

def casquete():
casq=[]
casqr=int(input("Dame el radio: "))
casqh=int(input("Dame la altura: "))
casq.append(casqr)
casq.append(casqh)
casq.append(pi)
casqarea=2*casq[2]*casq[0]*casq[1]
casqvol=(1/3)*(casq[2]*casq[1]**2)*(3*casq[0] - casq[1])
casq.append(casqarea)
casq.append(casqvol)
print(casq)

def zona_esf():
zo=[]
zor=int(input("Dame el radio mayor: "))
zorr=int(input("Dame el radio menor: "))
zoh=int(input("Dame la altura: "))
zo.append(zor)
zo.append(zoh)
zo.append(pi)
zo.append(zorr)
zoarea=2*zo[2]*zo[0]*zo[1]
zovol=(zo[2]*zo[1]/6)*(zo[1]**2 + 6*zo[3]**2)
zo.append(zoarea)
zo.append(zovol)
print(zo)


print("Area del cuadrado: ")
cuadrado()
print("\nArea del rectangulo: ")
rectangulo()
print("\nArea del rombo: ")
rombo()
print("\nArea del poligono regular: ")
poligono_reg()
print("\nArea de la corona circular: ")
corona_circ()
print("\nArea y volumen del cubo: ")
cubo()
print("\nArea y volumen del ortoedro: ")
ortoedro()
print("\nArea y volumen del prisma recto: ")
prisma_recto()
print("\nArea y volumen del tetraedro regular: ")
tetraedro_reg()
print("\nArea y volumen del octaedro regular: ")
octaedro_reg()
print("\nArea y volumen de la piramide recta: ")
piramide_rec()
print("\nArea y volumen del tronco de piramide: ")
tronco_piramide()
print("\nArea del triangulo: ")
triangulo()
print("\nArea del romboide: ")
romboide()
print("\nArea del trapecio: ")
trapecio()
print("\nArea del circulo: ")
circulo()
print("\nArea del sector circular: ")
sector_circular()
print("\nArea y volumen del cilindro: ")
cilindro()
print("\nArea y volumen del cono: ")
cono()
print("\nArea y volumen del tronco de cono: ")
tronco_de_cono()
print("\nArea y volumen de la esfera: ")
tronco_de_cono()
print("\nArea y volumen del huso-cuña esferica: ")
huso()
print("\nArea y volumen del casquete esferico: ")
casquete()
print("\nArea y volumen de la zona esferica: ")
zona_esf()

  • Ejecución:





Ultima entrada ingresada

SISTEMA DE RIEGO AUTOMÁTICO CON MÚSICA

El objetivo era hacer un programa que pueda activar una bomba de agua en la noche, y que por las mañanas reproduzca música para las plantas....