Dentro de la siguiente entrada podrás consultar diferentes estructuras de control y su sintaxis en python, y algunos ejemplos de como usarlas.
U3 If Uno
El siguiente programa declara una condición inicial si esta condición se cumple, hará una determinada acción y si no se cumple hará otra acción.
ana=16
if ana>=18: #para que el if sea reconocido debe de ponerse ":" después de la condición
print("ana es mayor de edad") #la accidentario es muy importante en python
else:
print("ana es menor de edad")
U3 If Dos
En el siguiente programa se muestra un sustituto perfecto para el if anidado ya que python es muy quisquilloso con la identación.
a=25
if (a<22):
print("dentro de if positivo")
elif(a==25): #es como un if anidado, if en un else, es una pregunta dentro de un if
print("dentro de elif")
else: #es el else del primer if
print("dentro de else")
U3 If Tres
Mas de lo mismo un if con elif, solo es cuestión de correr el programa un ar de veces y cambiando las condiciones para darse cuenta que es un claro sustituto del if anidado.
age=16
if age>16:
print("apenas puedes conducir")
else: print("puedes conducir con seguro")
if age>=21:
print("puedes conducir con seguro")
elif age<=16:
print("puedes conducir con permiso o licencia")
else:
print("no puedes conducir")
En el siguiente programa se muestra un sustituto perfecto para el if anidado ya que python es muy quisquilloso con la identación.
a=25
if (a<22):
print("dentro de if positivo")
elif(a==25): #es como un if anidado, if en un else, es una pregunta dentro de un if
print("dentro de elif")
else: #es el else del primer if
print("dentro de else")
U3 If Tres
Mas de lo mismo un if con elif, solo es cuestión de correr el programa un ar de veces y cambiando las condiciones para darse cuenta que es un claro sustituto del if anidado.
age=16
if age>16:
print("apenas puedes conducir")
else: print("puedes conducir con seguro")
if age>=21:
print("puedes conducir con seguro")
elif age<=16:
print("puedes conducir con permiso o licencia")
else:
print("no puedes conducir")
U3 If Cuatro
En el siguiente programa, se pide una edad como dato y si cumple ciertos parámetros se le permiten ciertas cosas, todo esto por medio del if y elif.
edad=int(input("dame tu edad "))
if edad<1:
print("nada")
if ((edad>=1) and (edad<=16)):
print("permiso para conducir mx")
elif((edad>16) and (edad<=18)):
print("no entra a fiesta y puede conducir")
elif ((edad>=18) and (edad<=21)):
print("puede votar y conducir mx")
elif ((edad>=21) and (edad<=24)):
print("vota conduce y bebe en el extranjero")
elif(edad>=24):
print("vota, bebe en el extranjero, conduce en europa")
U3 If Cinco
If con parámetros debe de cumplir ciertos parámetros para realizar una acción, en su caso el dato registrado debe de estar dentro de un rangon.
age=30
if ((age>=1)and(age<=18)):
print("niño")
elif((age==21)or(age>=65)):
print("adulto")
elif not(age==30):
print("estas casado")
else:
print("tendremos fiesta")
U3 For Uno
En el siguiente programa se ve un repaso del if, y el primer for con su sintaxis y un ejemplo ejecutable
x=-1
if(x<0):
x=0
print("negativo cambiado a cero")
elif(x==0):
print("cero")
elif(x==1):
print("sencillo")
else:
print("mas")
#FOR
palabras=['gatos','ventana','defensas']
for w in palabras: ##inicializa w en 0
print(w,len(w))
for i in range(5): #va de 0 a 4
print(i)
U3 For Dos
El for se puede aplicar tanto en datos enteros como a datos en cadenas, el siguiente programa muestra como imprimir la posición y cadena de carácter dentro de una lista.
for i in range(5): #imprime del 0 al 4
print(i)
print()
a=['maria','tenia','un','corderito']
for c in range(len(a)): #imprime posicion y la cadena
print("%d %s"%(c,a[c]))
#for m in range(len(a[0])):
#print("%d %d"%(m,a[0][m]))
print()
U3 For Tres
En el siguiente programa se ve la sentencia break la cual sirve para romper un ciclo y seguir a la sentencia siguiente.
for n in range(2,10):
for x in range(2,n):
print("n %d igual a %d * %d"%(n,x,n//x))
break #rompe el ciclo en el que esta el if y el for lo inicia de nuevo
else:
print("n es primo %d"%(n))
#print("el valor de n es %d y el de x es %d"%(n,x))
print()
num=int(input("dame un numero "))
for i in range(1,10): #imprime del 1 al 9 la tabla
print(num*i)
print()
for x in range(num,num+6): #si el numero es 5 imprime la tabla hasta el 10
for i in range(1,10):
print("%d*%d=%d"%(x,i,x*i))
print()
U3 For Cuatro
En el siguiente programa se ve un desglose de números par o impar por medio de un ciclo for. adema de la sentencia continué que sirve para seguir con la siguiente linea inmediata del código
for num in range(2,10):
if (num%2==0):
print("par %d"%(num))
continue #salta la siguiente linea inmediata
print("impar %d"%(num))
U3 For Cinco
En el siguiente programa se ven 7 tipos diferentes de for, con su diferente sintaxis, este programa sirve como ejemplo para saber aplicar cada tipo de for según lo que se quiera hacer.
print("inicio")
for i in [0,1,2]:
print("hola",end="")
print()
print("final")
print()
#SEGUNDO FOR
print("inicio")
for i in [1,1,1]:
print("hola2",end="")
print()
print("final")
print()
#tercer for
print("inicio")
for i in []:
print("hola3",end="")
print()
print("final")
print()
#cuarto for
print("inico")
for i in [3,4,5]:
print("hola4 %d"%(i))
print()
print("final")
print()
#quinto for
print("inicio")
for i in ["Ari","Rocio",100]:
print("hola5 %s"%(i))
print()
print("final")
print()
#sexto for
#n2=2, n3=3, n4=4, n5=5
print("inicio")
for numero in [1,2,3,4,5]:
print("%d * %d = %d"%(numero,numero,numero**2))
print()
print("final")
print()
#septimo for programas una porra jajajaja xD
for i in "ABRAHAM":
print("dame una %s"%(i))
print()
print("que dice %s"%("ABRAHAM"))
print("mas fuerte %s"%("ABRAHAM"))
for i in [1,1,1]:
print("Tres Veces %s"%("ABRAHAM"))
U3 For Usuario
Una aplicación mas directa del for es para los usuarios y pasword donde da un limite de intentos tanto para el usuario y contraseña al exceder el limite te saca del programa
usuario="Abra2018"
contraseña="12345"
for i in range(3):
usuario1=input("Dame un usuario")
if usuario1==usuario:
print("hola %s"%usuario)
break
else:
print("error")
for i in range(3):
contraseña1=input("Dame un contraseña")
if contraseña==contraseña1:
print("entraste")
break
else:
print("error")
U3 While Uno
Esta es la primera ez que vemos un while en el blog, pues esta sentencia es muy similar a otros lenguajes, en pocas palabras mientras una condición se este cumpliendo es ciclo while no se parara de ejecutar.
El siguiente programa muestra una variable inicial, mientras esta no sea mayor que 18, la variable se aumentara de 1 en 1 y dirá cuales son los números pares y cuales son los impares.
edad=0
while (edad<18): #mientras edad sea menor que 18 se repitira el ciclo
edad=edad+1
print("edad vale",edad)
if(edad%2==0):
print("edad par es ",edad)
continue #el continue salta las siguientes dos lineas
print("saltare si no tal vez")
print("Esta saltara nooo, siii")
print("Felicidades eres mayot de edad",edad)
U3 While Dos
En el siguiente programa mientras la variable "c" sea menor que 101 en el while se agregaran los números que tomara "c" a un lista y por medio de un if y else se agregaran los pares e impares a dos listas diferentes, para al final imprimir cada lista
cien=[]
par=[]
impar=[]
c=1
while(c<101):
cien.append(c) #agrega los numeros
if(c%2==0):
par.append(c) #agrega los impares
else:
impar.append(c) #agrega los pares
c+=1
print("valores totales")
print(cien)
print("pares")
print(par)
print("Impares")
print(impar)
U3 Do while
En pocas palabras esta sentencia no existe en python ya que no tiene demasiado sentido o importancia usarlo, es mas eficaz usar un for.
Esta es la primera ez que vemos un while en el blog, pues esta sentencia es muy similar a otros lenguajes, en pocas palabras mientras una condición se este cumpliendo es ciclo while no se parara de ejecutar.
El siguiente programa muestra una variable inicial, mientras esta no sea mayor que 18, la variable se aumentara de 1 en 1 y dirá cuales son los números pares y cuales son los impares.
edad=0
while (edad<18): #mientras edad sea menor que 18 se repitira el ciclo
edad=edad+1
print("edad vale",edad)
if(edad%2==0):
print("edad par es ",edad)
continue #el continue salta las siguientes dos lineas
print("saltare si no tal vez")
print("Esta saltara nooo, siii")
print("Felicidades eres mayot de edad",edad)
U3 While Dos
En el siguiente programa mientras la variable "c" sea menor que 101 en el while se agregaran los números que tomara "c" a un lista y por medio de un if y else se agregaran los pares e impares a dos listas diferentes, para al final imprimir cada lista
cien=[]
par=[]
impar=[]
c=1
while(c<101):
cien.append(c) #agrega los numeros
if(c%2==0):
par.append(c) #agrega los impares
else:
impar.append(c) #agrega los pares
c+=1
print("valores totales")
print(cien)
print("pares")
print(par)
print("Impares")
print(impar)
U3 Do while
En pocas palabras esta sentencia no existe en python ya que no tiene demasiado sentido o importancia usarlo, es mas eficaz usar un for.
#el do while que todos conocen de C no existe en python ya que este no tiene sentido
#el for toma su lugar por mas efectivo
a=0
do: #no lo reconoce!!!
print(a)
a=a+1
while(a!=3)
U3 While Tres
Jugando con las entradas, el siguiente programa se ejecuta según los datos que ingrese el usuario mientras no se cumpla una condición de paro el programa seguirá hasta que el usuario de la condición de paro
#escriba un programa que pida dos numeros
#continue mientras sean cada vez mas grande
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)+" ")) #el str es para imprimir el numero
print()
print(segundo,"no es mayor que",str(primero)+" ")
print("programa terminado")
#escribe un programa que pida la cantidad de numeros
#positivos hasta que sea la cantidad que usted decida de positivos
c=1
while(c<6):
pos=int(input("dame numero positivo"))
if pos>0:
print("positivo",pos)
else:
print("negativo",pos)
break
c=c+1
U3 While Cuatro
Un poco de lo anterior pedimos al usuario que ingrese un limite o condición de paro, después le pedimos números y se suma simultáneamente hasta que cumplan con la condición de paro que el mismo usuario proporciono
limite=int(input("dame un limite "))
c=0
while(c<limite):
a=int(input("dame numero "))
c=c+a
print("fin")
import pygame
from pygame.locals import *
import sys
import math
#importh 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=(500, 500)
#linea la siguiente linea de codigo dibuja una linea de color verde desde el punto [10,10]
#al el punto [650, 470]
#donde el primer valor de cada lista .....
def dubujar_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 casi para dibujar un rectangulo usamos una lista con 4 elementos
#de los cuales el primer par corresponde a las coordenadas (x,y) de la esquina superiro izquierda
#los otros dos indican el tamaño de la figura (ancho y alto) asi la siguiente linea dibuja un rectangulo que en realidad es un cuadrado
# con coordenadas iniciales x=150, y=50, con 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
#dibujara con relleno (esto funciona tambien para la funcion rect).
def dibujarTexto(pantalla,texto,color):
Fuente= pygame.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))
#figuras
dibujar_fig(pantalla, [25,25])
#texto
dibujarTexto(pantalla, "Prog Visual", TRUENO)
pygame.display.flip()
reloj.tick(60)
pygame.quit()
if __name__=="__main__":
main()
#U3
cadena="TeXto"
print(cadena)
print(cadena[1])
print(len(cadena))
print(cadena.lower()) #hace todo minusculas
print(cadena.upper()) #hace todo mayusculas
numero=7.9867
num=str(numero)
print(str(numero)) #hace el numero en cadena
print("numero %s"%num[0])#como el numero es cadena imprime la posicion 0
var1="hola"
var2="abraham"
#var3=var1+var2
print(var1+' '+var2)
#Juan Daniel Muñoz --> JUAN DANIEL MUÑOZ --> juan daniel muñoz
nombre="Juan Daniel"
apellido="Muñoz"
nombreM=nombre.upper()
apellidoM=apellido.upper()
nombrem=nombre.lower()
apellidom=apellido.lower()
print(nombre+' '+apellido)
print(nombreM+' '+apellidoM)
print(nombrem+' '+apellidoM)
from sympy import I, simplify #libreria sympy, importa unicamente simplify y I
# from sympy import * importa toda la libreria
print(simplify ((1 + I) /(1 + 2*I))) #I es la notacion de complejo
U2 Algebra Dos
El programa siguiente tiene una expresión algebraica y este la simplifica, la resuelve y en caso de ser imaginaria busca la parte real.
#simplifica la exprecion pero no la resuelve
from sympy import arg , conjugate ,sqrt ,I #la libreria que se pone primero es la que domina
#from math import *
#no resuleve la operación la deja solo simplificada
#sin comentario de math entonces da un resultado #numérico
a= sqrt (3)+I
print(conjugate (a)) #Conjugate es para imprimir la exprecion como tal y resolver la exprecion
print(abs(a))
print(arg(a))
#Si necesitamos el valor real de alguna de las operaciones efectuadas con
#SymPy, podemos usar el método evalf
c=arg(a). evalf () #da el valor numerico real
print(c)
lista=[1, 2, 3, 4, 5]
print(type(lista))
a = np.array(lista)
print(type(a))
#--------------------
a=[1,2,3]
b=a[:]
print("b original",b)
b[0]=100
print("b modificada",b)
print("lista a",a),print()
#________________________
a=np.array([1,2,3]) #np.array identificador de tipo arreglo
b=a[:]
print("b original",b)
b[0]=100 #siendo arreglos haces copia y si modificas la copia se modifica el original
print("b modificada",b)
print("lista a",a),print()
#_______________ como se resuelve
a=np.array([1,2,3])
b=a[:].copy() #se fuerza la copia sin que se modifique la original
print("antes",b)
b[0]=100
print("despues",b)
print("valor de a",a)
plt.plot(a)
plt.show()
#el for toma su lugar por mas efectivo
a=0
do: #no lo reconoce!!!
print(a)
a=a+1
while(a!=3)
U3 While Tres
Jugando con las entradas, el siguiente programa se ejecuta según los datos que ingrese el usuario mientras no se cumpla una condición de paro el programa seguirá hasta que el usuario de la condición de paro
#escriba un programa que pida dos numeros
#continue mientras sean cada vez mas grande
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)+" ")) #el str es para imprimir el numero
print()
print(segundo,"no es mayor que",str(primero)+" ")
print("programa terminado")
#escribe un programa que pida la cantidad de numeros
#positivos hasta que sea la cantidad que usted decida de positivos
c=1
while(c<6):
pos=int(input("dame numero positivo"))
if pos>0:
print("positivo",pos)
else:
print("negativo",pos)
break
c=c+1
U3 While Cuatro
Un poco de lo anterior pedimos al usuario que ingrese un limite o condición de paro, después le pedimos números y se suma simultáneamente hasta que cumplan con la condición de paro que el mismo usuario proporciono
limite=int(input("dame un limite "))
c=0
while(c<limite):
a=int(input("dame numero "))
c=c+a
print("fin")
PYGAME
Esta librería es perfecta para crear vídeo jugos sencillos ademas que es muy fácil de obtener como todas las librerías que tiene python. a continuacion se mostrara un programa proporcionado mi el docente de la clase donde tomo este curso de python.
from pygame.locals import *
import sys
import math
#importh 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=(500, 500)
#linea la siguiente linea de codigo dibuja una linea de color verde desde el punto [10,10]
#al el punto [650, 470]
#donde el primer valor de cada lista .....
def dubujar_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 casi para dibujar un rectangulo usamos una lista con 4 elementos
#de los cuales el primer par corresponde a las coordenadas (x,y) de la esquina superiro izquierda
#los otros dos indican el tamaño de la figura (ancho y alto) asi la siguiente linea dibuja un rectangulo que en realidad es un cuadrado
# con coordenadas iniciales x=150, y=50, con 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
#dibujara con relleno (esto funciona tambien para la funcion rect).
def dibujarTexto(pantalla,texto,color):
Fuente= pygame.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))
#figuras
dibujar_fig(pantalla, [25,25])
#texto
dibujarTexto(pantalla, "Prog Visual", TRUENO)
pygame.display.flip()
reloj.tick(60)
pygame.quit()
if __name__=="__main__":
main()
ALGO DE CADENAS
Es bueno repasar lo aprendido o reforzarlo de esta manera agregando mas sentencias que pueden llegar a ser muy útiles a continuación se mostrara como cambiar una cadena de minúsculas a mayúsculas.
cadena="TeXto"
print(cadena)
print(cadena[1])
print(len(cadena))
print(cadena.lower()) #hace todo minusculas
print(cadena.upper()) #hace todo mayusculas
numero=7.9867
num=str(numero)
print(str(numero)) #hace el numero en cadena
print("numero %s"%num[0])#como el numero es cadena imprime la posicion 0
var1="hola"
var2="abraham"
#var3=var1+var2
print(var1+' '+var2)
#Juan Daniel Muñoz --> JUAN DANIEL MUÑOZ --> juan daniel muñoz
nombre="Juan Daniel"
apellido="Muñoz"
nombreM=nombre.upper()
apellidoM=apellido.upper()
nombrem=nombre.lower()
apellidom=apellido.lower()
print(nombre+' '+apellido)
print(nombreM+' '+apellidoM)
print(nombrem+' '+apellidoM)
OPERACIONES ALGEBRAICAS
Los siguientes programas fueron proporcionados por el docente que imparte el curso de python donde su servidor esta aprendiendo a programar
U3 Algebra Uno
Calculo y operaciones de números complejos, es necesario tener la librería sympy
# from sympy import * importa toda la libreria
print(simplify ((1 + I) /(1 + 2*I))) #I es la notacion de complejo
U2 Algebra Dos
El programa siguiente tiene una expresión algebraica y este la simplifica, la resuelve y en caso de ser imaginaria busca la parte real.
#simplifica la exprecion pero no la resuelve
from sympy import arg , conjugate ,sqrt ,I #la libreria que se pone primero es la que domina
#from math import *
#no resuleve la operación la deja solo simplificada
#sin comentario de math entonces da un resultado #numérico
a= sqrt (3)+I
print(conjugate (a)) #Conjugate es para imprimir la exprecion como tal y resolver la exprecion
print(abs(a))
print(arg(a))
#Si necesitamos el valor real de alguna de las operaciones efectuadas con
#SymPy, podemos usar el método evalf
c=arg(a). evalf () #da el valor numerico real
print(c)
U3 Algebra Tres
Resuelve la ecuación de Euler con numeros complejos y buscando la parte real, se ocupa sympy
#Resuelve calculos imaginarios buscando la parte real
from sympy import Symbol ,E,I,re #E es para formula de euler
x= Symbol ('x', real = True ) #hay variable simbolica para generalizar
a=E **(I*x)
b=a. expand ( complex = True )
print(b)
c=a **3
d=c. expand ( complex = True ). expand ( trig = True ) #trig es variable de tipo real
print(d)
print(re(d))
f=c. expand ( complex = True ) #expand resuelve numeros complejos y terminos trigonometricos
print(re(f))
res=(re(f)-re(d)). expand ( trig = True )
print(res)
U3 Algebra Cuatro
El comando "solve" se ve en este programa, este sirve para resolver expresiones algebraicas de una manera mas directa
from sympy import Symbol , solve,I
x= Symbol ('x ')
print(solve (x**4 -1 ,x))
#es diferete
a= solve (x**4 -I,x)
#print(a)
for b in a:
print(b. evalf ())
Aqui terminan los programas proporcionados por el docente si quieres saber como instalar estas librerias y otras visita su blog:
http://itaprogramacionvisual.blogspot.mx/
U3 Random
La función random es para generar números aleatorios .
import random #libreria de python dos
rand_num=random.randrange(10)
print(rand_num)
while(rand_num !=5):
print(rand_num)
rand_num=random.randrange(10)
print()
a=0
para=0
imp=0
while (a<=20):
a=random.randrange(100)
if (a%2==0):
para=para+1
else:
imp=imp+1
print("pares: ",para)
print("impares: ",imp)
MATRICES
Las matrices se pueden trabajar con diferentes librerías, algunos las trabajan como cadenas enlazadas, y otros como arrays, te recomiendo usar la librería numpy que es mucho mas sencillo trabajar con matrices en esta librería.
U3 Matriz Uno
from pylab import *lista=[1, 2, 3, 4, 5]
print(type(lista))
a = np.array(lista)
print(type(a))
#--------------------
a=[1,2,3]
b=a[:]
print("b original",b)
b[0]=100
print("b modificada",b)
print("lista a",a),print()
#________________________
a=np.array([1,2,3]) #np.array identificador de tipo arreglo
b=a[:]
print("b original",b)
b[0]=100 #siendo arreglos haces copia y si modificas la copia se modifica el original
print("b modificada",b)
print("lista a",a),print()
#_______________ como se resuelve
a=np.array([1,2,3])
b=a[:].copy() #se fuerza la copia sin que se modifique la original
print("antes",b)
b[0]=100
print("despues",b)
print("valor de a",a)
plt.plot(a)
plt.show()
U3 Matriz Dos
El siguiente programa se tiene una matriz y se imprime de dos maneras diferentes.
from pylab import *
a=np.array([[1, 1, 1],
[1, 1, 1],
[1, 1, 1]])
print("Arreglo ",a)
for i in range(len(a)): #imprime matriz como la conocemos
for j in range(len(a)):
print(a[i][j], end=" ")
print()
print()
print() ##imprime matriz de otra manera
for ren in a:
for col in ren:
print(col, end=" ")
print()
U3 Numpy Uno
El siguiente programa requiere de la librería numpy, ya que muestra diferentes sentencias y métodos para trabajar con matrices.
#numpy uno
import numpy as np
a=np.append([1,2,3],[[4,5,6],[7,8,9]])
print("primero",a)
b=np.append([[1,2,3],[4,5,6]],[[7,8,9]], axis=0)
print(b)
print(b.ndim)
print(b.shape)
#Auto llenado
print()
a=np.arange(10) #0.... n-1 (!)
print("primer autollenado", a)
b=np.arange(1,9,2) #inicio, final(excluido), paso o saltos
print("llenado por eleccion",b)
c=np.linspace(0,1,6) #inicio. final, numero de puntos
print("llenado de puntos",c)
d=np.linspace(0,1,5, endpoint=False)
print("aun no se",d) #endpoint=False es igual a omitir el ultimo punto
#opciones
print()
#llena de unos
a=np.ones((3,3))
print(a)
print()
#llena de ceros
b=np.zeros((2,2))
print(b)
print()
#diagonal principal de unos
c=np.eye(3)
print(c)
print()
#llena la diagonal principal con los valores dados
d=np.diag(np.array([1,2,3,4]))
print(d)
print()
#arreglo con dimensiones de 4
a=np.random.rand(4) #
print(a)
print()
b=np.random.randn(4) #
print(b)
print()
d=np.array([1+2j,3+4j,5+6*1j])
print(d.dtype)
e=np.array([True,False,False,True])
print(e.dtype)
f=np.array(['bonjour','hello','hallo',])
print(f.dtype) #imprime U7 que es de UniCode version 7
#
a= np.diag(np.arage(3))
print(a)
a[2,1]=10
print(a)
a=np.arange(10)
print(a)
#
a=np.arange(12).reshape(3,4)
print(a)
i=np.array([[0,1],[1,2]])
a=[i,2] #lo mismo es a[i, 2*np.ones((2,2), dtype=int)]
print(i)
U3 Numpy Dos
Operaciones en columna y en renglón, mostrar los máximos y mínimos de un renglón y el máximo de todo el arreglo matricial.
import numpy as np
from numpy import matrix
b=np.array([[0,1,2],[3,4,5]])
print(b)
print(b.ndim) #dimensiones
print(b.shape) #forma nxm
print(len(b)) #longitud numero de renglones
print()
c=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(c)
print(c.ndim)
print(c.shape)
print(len(c))
print()
d=np.array([[[1],[2]],[[3],[4]]]) #numero de corchetes es el numero de dimensiones
print(d)
print(d.ndim)
print(d.shape)
print(len(d))
print()
#operaciones
print("sumas y multiplicacion")
a=np.array([1,2,3,4])
print(a)
a=a+1
print(a)
a=a*3
print(a)
print()
x1=np.array([[[1,2,3],[3,4,5]],[6,7,8]])
y1=np.array([1,2,3])
print('de x', x1.ndim)
print('de y', y1.ndim)
print("operaciones")
a=np.array([1,1,0,0], dtype=bool)
b=np.array([1,0,1,], dtype=bool)
#print(a | b)
#print(a & b)
#print(a ^ b)
print("suma")
x=np.array([1,2,3,4])
print(x.sum())
#por columna
print("suma renglon y columna")
x=np.array([[1,1],[2,2]])
print(x)
#por columna
print(x.sum(axis=0))
#por renglon
print(x.sum(axis=1))
print()
#multiplica matrices
print("multiplicacion")
a=matrix([[1,3,-5],[3,4,2],[-5,2,0]]) #matrix es el metodo para multiplicar directamente matrices
print(a)
b=matrix([[1],[5],[3]])
print(b)
a=a*b
print()
print(a)
x=np.array([1,2,3,4])
#estadistico
#desviacion estandar
print(x.mean())
#desviacion estandar
print(x.std())
print(x.min())
print(x.max())
#indice del maximo
print(np.argmax(x))
#Algebra lineal basica
print("transpuesta")
b=matrix([[1],[5],[3]])
print(b.T) #calculamos la transpuesta de b
print(b.H) #calculamos la hermetica (transpuesta y conjugada)
c= a.I #calculamos la inversa de b
print(c)
print(a*c) #multiplica las matrices
U3 Numpy Tres
El programa calcula el determinante de una matriz mediante el método de np. y una sentencia llamada np.linalg.det() la cual es de álgebra lineal y calcula el determinante por el método de Sarrus o como otros lo conocen el método directo.
import numpy as np
a= np.array([[1,2],[3,4]])
print(np.linalg.det(a))
#determinantes
print("a")
a=np.array([ [[1,2],[3,4]], [[1,2],[2,1]], [[1,3],[3,1]]])
print(a.shape)
print(np.linalg.det(a))
print("b")
b=np.array([ [3,2,1], [0,2,-5], [-2,1,4] ])
print(b.shape)
print(np.linalg.det(b)) #calcula determinates
U3 Funcion Recursiva
Como lo mencione en la entrada donde utilice funciones, las funciones son una estructura de tareas que se programan y se mandan a llamar las veces que sea necesario, las funciones re cursivas son aquellas que se mandan a llamar a si mismas dentro de la misma función..
La función es sobre un juego demasiado sencillo donde debes de acertar el color de una fruta y tiene tres intentos para lograrlo.
import string #permite usar el lower o upper
def juega(intento=1): #el parametro por default inicia en uno
respuesta=str(input("¿De que color es una mora azul? "))
#res=string.lower(respuesta)
print(respuesta)
if respuesta != "azul" and respuesta != "Azul":
if intento < 3:
print("\n Creo que no")
intento += 1
juega(intento) #llamada recursiva
else:
print("\n pierdes!")
else:
print("\n ganas")
juega()
U3 Funcion Recursiva Dos
Función de recursividad compleja ya que dentro de la función de declaran diferentes funciones y estas se mandan a llamar dentro de la función.
def prueba_ambitos(): #funcion de recursividad compleja
def hacer_local():
algo="algo local"
def hacer_nonlocal():
nonlocal algo #trae el valor que tiene algo
algo= "algo no algo"
def hacer_global():
global algo
algo="algo global"
algo="algo de prueba"
hacer_local()
print("luego de la asignacion local: ",algo)
hacer_nonlocal()
print("luego de la asignacion no local",algo)
hacer_global()
print("luego de la asignacion global: ",algo)
prueba_ambitos()
print("En asignacion global: ",algo)
U3 Grafica Uno
Para poder graficar debes de obtener la librería de matplot, utilizando la sentencia en cmd pip install matplot.
El siguiente programa por medio de listas imprime y muestra dos gráficas, la primera esta hecha con dos listas por ende son dos lineas en una sola gráfica y la segunda esta hecha con un for donde se genera una función exponencial.
from pylab import * #importas todo
# importando pylab que es donde se encuentra todo
# lo de ploteo
lista1 = [11,2,3,15,8,13,21,34] # Y es el indice, X es el valor
lista=[1,2,3,4,5,6,7,8,9]
#estamos declarando la lista, que los elementos de la grafica
plt.plot(lista)
#dibuje los puntos en X y Y
plt.plot(lista1)
plt.show() # es para mostrar la grafica
###EJERCICIO EN CLASE
c=0
lis=[]
for c in range(10):
c=c**5
lis.append(c)
plt.plot(lis)
plt.show()
Gráfica 1
El siguiente programa requiere de la librería numpy, ya que muestra diferentes sentencias y métodos para trabajar con matrices.
#numpy uno
import numpy as np
a=np.append([1,2,3],[[4,5,6],[7,8,9]])
print("primero",a)
b=np.append([[1,2,3],[4,5,6]],[[7,8,9]], axis=0)
print(b)
print(b.ndim)
print(b.shape)
#Auto llenado
print()
a=np.arange(10) #0.... n-1 (!)
print("primer autollenado", a)
b=np.arange(1,9,2) #inicio, final(excluido), paso o saltos
print("llenado por eleccion",b)
c=np.linspace(0,1,6) #inicio. final, numero de puntos
print("llenado de puntos",c)
d=np.linspace(0,1,5, endpoint=False)
print("aun no se",d) #endpoint=False es igual a omitir el ultimo punto
#opciones
print()
#llena de unos
a=np.ones((3,3))
print(a)
print()
#llena de ceros
b=np.zeros((2,2))
print(b)
print()
#diagonal principal de unos
c=np.eye(3)
print(c)
print()
#llena la diagonal principal con los valores dados
d=np.diag(np.array([1,2,3,4]))
print(d)
print()
#arreglo con dimensiones de 4
a=np.random.rand(4) #
print(a)
print()
b=np.random.randn(4) #
print(b)
print()
d=np.array([1+2j,3+4j,5+6*1j])
print(d.dtype)
e=np.array([True,False,False,True])
print(e.dtype)
f=np.array(['bonjour','hello','hallo',])
print(f.dtype) #imprime U7 que es de UniCode version 7
#
a= np.diag(np.arage(3))
print(a)
a[2,1]=10
print(a)
a=np.arange(10)
print(a)
#
a=np.arange(12).reshape(3,4)
print(a)
i=np.array([[0,1],[1,2]])
a=[i,2] #lo mismo es a[i, 2*np.ones((2,2), dtype=int)]
print(i)
U3 Numpy Dos
Operaciones en columna y en renglón, mostrar los máximos y mínimos de un renglón y el máximo de todo el arreglo matricial.
import numpy as np
from numpy import matrix
b=np.array([[0,1,2],[3,4,5]])
print(b)
print(b.ndim) #dimensiones
print(b.shape) #forma nxm
print(len(b)) #longitud numero de renglones
print()
c=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(c)
print(c.ndim)
print(c.shape)
print(len(c))
print()
d=np.array([[[1],[2]],[[3],[4]]]) #numero de corchetes es el numero de dimensiones
print(d)
print(d.ndim)
print(d.shape)
print(len(d))
print()
#operaciones
print("sumas y multiplicacion")
a=np.array([1,2,3,4])
print(a)
a=a+1
print(a)
a=a*3
print(a)
print()
x1=np.array([[[1,2,3],[3,4,5]],[6,7,8]])
y1=np.array([1,2,3])
print('de x', x1.ndim)
print('de y', y1.ndim)
print("operaciones")
a=np.array([1,1,0,0], dtype=bool)
b=np.array([1,0,1,], dtype=bool)
#print(a | b)
#print(a & b)
#print(a ^ b)
print("suma")
x=np.array([1,2,3,4])
print(x.sum())
#por columna
print("suma renglon y columna")
x=np.array([[1,1],[2,2]])
print(x)
#por columna
print(x.sum(axis=0))
#por renglon
print(x.sum(axis=1))
print()
#multiplica matrices
print("multiplicacion")
a=matrix([[1,3,-5],[3,4,2],[-5,2,0]]) #matrix es el metodo para multiplicar directamente matrices
print(a)
b=matrix([[1],[5],[3]])
print(b)
a=a*b
print()
print(a)
x=np.array([1,2,3,4])
#estadistico
#desviacion estandar
print(x.mean())
#desviacion estandar
print(x.std())
print(x.min())
print(x.max())
#indice del maximo
print(np.argmax(x))
#Algebra lineal basica
print("transpuesta")
b=matrix([[1],[5],[3]])
print(b.T) #calculamos la transpuesta de b
print(b.H) #calculamos la hermetica (transpuesta y conjugada)
c= a.I #calculamos la inversa de b
print(c)
print(a*c) #multiplica las matrices
U3 Numpy Tres
El programa calcula el determinante de una matriz mediante el método de np. y una sentencia llamada np.linalg.det() la cual es de álgebra lineal y calcula el determinante por el método de Sarrus o como otros lo conocen el método directo.
import numpy as np
a= np.array([[1,2],[3,4]])
print(np.linalg.det(a))
#determinantes
print("a")
a=np.array([ [[1,2],[3,4]], [[1,2],[2,1]], [[1,3],[3,1]]])
print(a.shape)
print(np.linalg.det(a))
print("b")
b=np.array([ [3,2,1], [0,2,-5], [-2,1,4] ])
print(b.shape)
print(np.linalg.det(b)) #calcula determinates
U3 Funcion Recursiva
Como lo mencione en la entrada donde utilice funciones, las funciones son una estructura de tareas que se programan y se mandan a llamar las veces que sea necesario, las funciones re cursivas son aquellas que se mandan a llamar a si mismas dentro de la misma función..
La función es sobre un juego demasiado sencillo donde debes de acertar el color de una fruta y tiene tres intentos para lograrlo.
import string #permite usar el lower o upper
def juega(intento=1): #el parametro por default inicia en uno
respuesta=str(input("¿De que color es una mora azul? "))
#res=string.lower(respuesta)
print(respuesta)
if respuesta != "azul" and respuesta != "Azul":
if intento < 3:
print("\n Creo que no")
intento += 1
juega(intento) #llamada recursiva
else:
print("\n pierdes!")
else:
print("\n ganas")
juega()
U3 Funcion Recursiva Dos
Función de recursividad compleja ya que dentro de la función de declaran diferentes funciones y estas se mandan a llamar dentro de la función.
def prueba_ambitos(): #funcion de recursividad compleja
def hacer_local():
algo="algo local"
def hacer_nonlocal():
nonlocal algo #trae el valor que tiene algo
algo= "algo no algo"
def hacer_global():
global algo
algo="algo global"
algo="algo de prueba"
hacer_local()
print("luego de la asignacion local: ",algo)
hacer_nonlocal()
print("luego de la asignacion no local",algo)
hacer_global()
print("luego de la asignacion global: ",algo)
prueba_ambitos()
print("En asignacion global: ",algo)
U3 Grafica Uno
Para poder graficar debes de obtener la librería de matplot, utilizando la sentencia en cmd pip install matplot.
El siguiente programa por medio de listas imprime y muestra dos gráficas, la primera esta hecha con dos listas por ende son dos lineas en una sola gráfica y la segunda esta hecha con un for donde se genera una función exponencial.
from pylab import * #importas todo
# importando pylab que es donde se encuentra todo
# lo de ploteo
lista1 = [11,2,3,15,8,13,21,34] # Y es el indice, X es el valor
lista=[1,2,3,4,5,6,7,8,9]
#estamos declarando la lista, que los elementos de la grafica
plt.plot(lista)
#dibuje los puntos en X y Y
plt.plot(lista1)
plt.show() # es para mostrar la grafica
###EJERCICIO EN CLASE
c=0
lis=[]
for c in range(10):
c=c**5
lis.append(c)
plt.plot(lis)
plt.show()
Gráfica 1
Gráfica 2
U3 Gráfica Tres
En el siguiente programa ya se edita mas la gráfica, se le agrega un estilo de linea, varias leyendas y títulos.
from pylab import *
plt.ioff() #se apaga la grafica para reducir memoria
lista=[11,2,5,8,10,9,4,1] #el eje x es el valor de la pocicion del item #los valores de la lista son los valores de Y
lista1=[9,8,7,6,5,4,3,2]
lista2=[1,1,1,1,1,1,1,1,1]
plt.plot(lista2)
plt.plot(lista,label="Ayer", marker='D',linestyle='-.',color='g')#Da etiqueta a los trazados
plt.plot(lista1,label="Hoy", marker='s',linestyle='-.',color='m')
#upper, lowe, center, left, right
plt.legend()# loc="lower rigth" da la etiqueta en la posicion donde se le indica
plt.title("comida")
plt.xlabel("Dias") #da etiqueta al eje x
plt.ylabel("Manzanas") #da etiqueta a eje y
plt.grid(True) #hace cuadricula
plt.show()
plt.ion
EJERCICIO EN CLASE DONDE SE HACEN DIVERSAS OPERACIONES CON TRES MATRICES DIFERENTES LLAMADAS "A","B" Y "C".
El programa siguiente importando de la librería numpy la sentencia matrix, permite hacer cálculos de suma, resta, división, multiplicación, etc. Tarea que en otro lenguajes es algo muy complejo pues en python es mucho mas sencillo con esta librería.
import numpy as np
from numpy import matrix
A=matrix([[2,4,1],[1,-2,3],[5,0,-1]])
B=matrix([[3,-1,-2],[0,5,6],[0,0,9]])
C=matrix([[2,0,-1],[0,-1,2],[1,-2,5]])
print("Matriz A",A.dtype)
print(A)
print("Matriz B",B.dtype)
print(B)
print("Matriz C",C.dtype)
print(C)
print("-A-B+C")
s=C-A-B
print(s)
print("A+B-C")
d=A+B+C
print(d)
print("3A+C/2")
e=3*A+C/2
print(e)
Comentarios
Publicar un comentario