Unidad 3
Abril 4, 2025
Programa 1:
#estructuras de control
#este programa introduce las palabras reservadas if y else
#si if se cumple ejecutará lo que esta dentro de if
#si no se cumple ejecutará el else
edad=12
let="Si se puedo"
#if palabra reservada condicional : identación
if edad>18: #si la edad es mayor a 18 imprimirá let y los otros 2 mensajes
print(let)#sera impreso si edad es>18
print("Todo dentro de if es entonces")#sera impreso si edad es>18
print("Hasta salir de la identación")#sera impreso si edad es>18
else: #palabra reservada y : identación
print("Dentro del else")
print("Hasta salir de la identación del else")#seran impresos si edad<18
print("Lo que sigue del if")#se imprime fuera del if y else
Programa 2
#estructuras de control
edad=int(input("Dame tu edad:"))
if edad>=18:#si la edad es mayor o igual a 18 imprimira los siguiente:
print("ya te pueden meter a la cacel")
print("Puedes votar")
print("Puedes trabajar y si lo haces tienes que pagar impuestos")
else:#el else se ejecuta si el if no se cumple
print("puedes ser feliz todavia y no tener tantas obligaciones")
print("sigue el programa")#se imprime fuera del if y else
Programa 3
edad=int(input("Tu edad es? "))
# ; permite poner varias sentencias en una sola linea
if edad>=18:print(" ya eres adulto responsable");print("Trabaja")
print("sigue...")#se imprime fuera del if
if edad<18:
print("algo")
else:
pass #no hace nada
#pass no hace nada, deja feliz al interprete
Programa 4
#else if
#elif se ejecuta si el if no se cumple y tiene tambien una condición
#Los elif se evaluan si el if previo o elif previo no se cumple
n=int(input("Dame un numero: "))
if n==1:
print("primero")
elif n==2:
print("segundo")
elif n==3:
print("tercero")
else:
print("no esta entre las posiciones")
#pueden haber varios elif en una condición
print("continua el programa")#Se imprime fuera del if y de los elif
Programa 5
edad=int(input("dame tu edad"))#es pedida la edad
if edad<0 :#mediante el if si es menor a 0 es no nato
print("no nato")
elif edad>0 and edad<3:#si el if no se cumple se evalua elif
print("bebe")#si se cumple imprime que es bebe
elif edad>=3 and edad<12:#si el elif previo no se cumple se evalua el siguiente elif
print("niño")#si se cumple imprime niño
elif edad>=12 and edad<17:#si el elif previo no se cumple se evalua el siguiente elif
print("adolescente")#si se cumple imprime adolescente
elif edad>=18 and edad<65:#si el elif previo no se cumple se evalua el siguiente elif
print("adulto")#si se cumple imprime adulto
else :#si ningun if o elif se cumple se imprime lo que contiene el else
print("tercera edad")
#and se refiere a que ambas condiciones deben ser verdaderas
#para poder ejecutarse lo que este dentro del if o elif
Programa 6
#ternarios
#Su nombre hace referencia a que tienen 3 partes
var=int(input("Dame un número: "))#se pide al usuario una variable entera en var
print(var, type(var))
print("Es 8" if var==8 else "no es 8")
#En este ternario imprimira "Es 8" si "var" es igual a 8
#Si "var" no es igual a 8 imprimirá "no es 8"
#Un ternario es una cláusula if, else que se define en una sola linea
#Un ternario puede ser usado dentro de un print()
#Las partes de un ternario son:
#La condición a evaluar
#El código que se ejecuta si se cumple
#Y el codigo que se ejecuta si no se cumple
#Las definiciones previas son de los apuntes de la maestra
Programa 7
var1=int(input("Dame número uno: "))#es pedido un número para var1, habrá error si no es dado un número
var2=int(input("Dame número dos: "))#es pedido un número para var2, habrá error si no es dado un número
var3=var1/var2 if var2!=0 else -1#var3 sera igual a var1/var2 si var2 es difererente de 0
#de lo contrario var3 sera igual a -1
print(var3)
#print(6/0)#error matemático por que no es posible dividir cualquier numero entre 0
Programa 8
#programa que capture solo numeros sin el int del input
#Actividad de clase
var4=input("dame un valor: ")
print("si es letra" if var4.isalpha() else "no es letra")
#El ternario imprimirá "si es letra" si lo dado es alfabético
#de lo contrario imprimirá "no es letra"
Programa 9
#actividad clase
edad=int(input("Dame tu edad"))
edad=("no nato" if edad<1 else "bebe" if edad>=1 and edad<3 else "niño" if edad>=3 and edad<12 else "adolescente" if edad>=12 and edad<17 else "adulto")
print(edad)
#mediante este programa fue pedida la edad y mediante un ternario anidado
#se clasifico la edad en distintas categorias a las que seria igual según la edad que se de
Programa 10
edad=input("Dame tu edad: ")#fue pedida una edad
v=(1 if edad.isdigit() else 0)#si la edad es un digito es 1 de lo contrario es 0
#si es 1 representa que v es True, 0 representa que es false
print("si" if v else "no")#será impreso "si" si v es True, "no" si es False
print("No es edad" if v == 0 else "no nato" if int(edad) < 1 else "bebe" if int(edad) >= 1 and int(edad) <= 3 else "niño" if int(edad) >= 4 and int(edad) <= 12 else "adolescente" if int(edad) >= 13 and int(edad) <= 17 else "adulto")
v2=("No me diste una edad" if not(edad.isdigit()) else False)
#si no es dado un digito en la edad, v2 sera igual a la cadena "No me diste una edad"
#si es dado un digito v2 sera igual a false
print(v2)
Programa 11
var=input("Dame un valor: ")#es pedida una variable
print("pos1",var[0],"pos2", var[1])#se imprime la posición 0 de ese valor y la posición 1 de ese valor
#habrá error si el valor dado es menor de 2 carácteres
#print(10*(1/0)) #error, no es posible dividir 1/0
#print(algo*10) #error, algo no fue definido
#print('2'+2) #error, no es posible sumar una cadena con un número
#try-except sirve permite que si hay un error dentro del try ejecute el except
#y regrese al try despues de haber ejecutado el except
try:
edad=int(input("Dame tu edad: "))
except:
print("no es una edad")
#ternario
#en este ternario se pidió la edad, si es un digito será impresa
#de lo contrario será impreso que "No es una edad"
edad1=input("Dame una edad");
print("no nato" if edad1.isdigit() and int(edad1) < 1 else"bebe" if edad1.isdigit() and int(edad1) >= 1 and int(edad1) <= 3 else"niño" if edad1.isdigit() and int(edad1) >= 4 and int(edad1) <= 12 else"adolescente" if edad1.isdigit() and int(edad1) >= 13 and int(edad1) <= 17 else"adulto" if edad1.isdigit() and int(edad1) >= 18 else"No es una edad")
Programa 12
#pagina 108
#while se ejecuta mientras la condición sea verdadera
#cuando la condición sea falsa se detiene
x=10
while x>1:
x-=1#se inicia restandole 1 a 10
print(x)#es impreso 9, el ciclo se repite hasta que x sea menor a 1
#será impreso x teniendo valor de 9 a 1
#Actividad clase
y=3
#este while pide la edad 3 veces y imprime lo que hay dentro del ternario
#Pedirá la edad 3 veces por que al declarar una variable y=3
#El ciclo se ejecutará mientras "y" sea mayor que 0
#despues de pedir la edad y imprimir según el ternario a que sera igual la edad
#a "y" se le restará 1 y se repetirá el ciclo hasta que "y" tenga valor de 0
#cuando "y" tenga valor de 0 se detendrá
while y>0:
try:
edad=(int(input("ingresa una edad: " )))
print(edad)
edad=("no nato" if edad<1 else "bebe" if edad>=1 and edad<3 else "niño" if edad>=3 and edad<12 else "adolescente" if edad>=12 and edad<17 else "adulto" if edad>=17 and edad<60 else "adulto mayor")
print(edad)
y-=1
except:
print("no es numero")
#El try-except es útil por si es dado en la edad un valor distinto a un número
#Y si no es dado un número se ejecutará el except y despues volverá a ejecutarse el try
Programa 13
x=3
while x>0 :
x-=1
print(x)
#Será impreso x mientras sea mayor que cero, empezará siendo impreso como 2
#Por que le es restado a x 1 antes de ser impreso
try:
print(6/0)
except:
print("entre cero no")#será impreso el mensaje por que 6/0 es un error
#Y será terminado el try-except
usuario="hernan"
clave="1234"
x=3
while x>0:#el ciclo sera ejecutado mientras x sea mayor que cero
upsus=input("ingresa un usuario: " )
print("antes de if x ",x )#se imprime x para saber ver si el programa se esta ejecutando correctamente en las oportunidades
if upsus==usuario:#si el usuario es igual al ingresado, será pedida la clave
print("usuario correcto")
clavus=int(input("Dame tu clave: "))
if clavus==clave:#si la clave es correcta se rompe el ciclo y se termina el programa
print("Correcto, entra al sistema")
break
else:#si la clave es incorrecta será restada una oportunidad y volverá a ser pedida
x-=1
print("clave incorrecta, usuario correcto")
else:#si el usuario es incorrecto será restada una oportunidad y volverá a ser pedido
x-=1
print("otra oportunidad")
Programa 14
#este programa realiza lo mismo que el pasado solo que la clave no es una cadena
usu2="hernan"
clave2=1234
x=3
while x>0:#mientras x sea mayor que cero se ejecutará el ciclo
usuariopedi2=input("dame el usuario")
if usuariopedi2==usu2:#si el usuario es correcto sera pedida la contraseña
print("usuario correcto")
try:#en el try sera pedida la contraseña,si la contraseña es dada con simbolos o letras, se ejecutará el except
clavepedi2=int(input("dame la contraseña"))
if clavepedi2 == clave2:#si la contraseña es correcta se terminará el ciclo con el break
print("estas dentro")
break
else:
print("contraseña incorrecta")
x-=1#si la contraseña es incorrecta sera restada una oportunidad, y volvera a ser pedida
clavnueva2=str(clave2)#se crea en una variable nueva que contiene la clave convertida en cadena
clavepedinueva=input("dame la contraseña")#es pedida la contraseña otra vez
if clavepedinueva==clavnueva2:#si es correcta estas dentro y se rompe el ciclo
print("estas dentro")
x=0
else:
x-=1#si esta mal pierdes una oportunidad
print("contraseña incorrecta")
clavepedinueva2=input("dame la contraseña")#es pedida la contraseña otra vez
if clavepedinueva2==clavnueva2:#si esta bien estas dentro y se rompe el ciclo
print("estas dentro")
x=0
else:#si esta mal se rompe el ciclo y esta incorrecta
print("no hay mas intentos, incorrecta")
x-=1#esta fue la ultima oportunidad si estuvo bien el usuario, y la contraseña mal con numeros
except: #si al dar la contraseña es dada con simbolos o letras, se ejecutará el except
x-=1#es restada una oportunidad por que al haber dado previamente la contraseña sin puros digitos esta mal
print("contraseña incorrecta, debe ser numerica")
clave3=str(clave2)#aqui cree una nueva variable que sera igual a la clave original convertida en cadena
clavepedi3=input("dame la contraseña")#con otra nueva variable pedi otra vez la contraseña
if clavepedi3==clave3:#si la contraseña dada es igual a la contraseña original como cadena estas dentro
print("estas dentro")
break#rompe el ciclo
else:
x-=1#si es incorrecta nuevamente es restada una oportunidad
print("contraseña incorrecta")
clavepedi4=input("dame la contraseña")#es pedida la contraseña nuevamente
if clavepedi4==clave3:#si es correcta se termina el ciclo y estas dentro
print("estas dentro")
x=0
else:
print("contraseña incorrecta")
x=0#si el usuario fue correcto, esta es la 3er oportunidad y si esta mal se acaba el ciclo
else:#este else corresponde al primer if
x-=1
print("usuario incorrecto")#si es usuario es incorrecto es restada una oportunidad
#este programa me quedo muy largo por que me aparecian errores en los que al colocar el usuario bien
#y la contraseña mal con numeros me regresaba al usuario, y opte por colocar condiciones if dentro de los else
#de esta forma me funciono adecuadamente el programa restando oportunidades correctamente si estaba mal dado
#cualquier parametro en cualquier caso, y acabando el ciclo siempre al perder 3 oportunidades
Programa 15
al=["ya","casi","sale"]
while al:
al.pop(0)
print(al)
#mientras la lista al contenga elementos:
#el ciclo eliminara el elemento 0 e imprimira la lista{
Programa 16
x=5
while x<0:
print(x) #nunca entrará, si correrá pero no hará nada
#debido a que 5 no es menor que 0
while x<2:
print(x)#nunca entrará, si correrá pero no hará nada
#debido a que 5 no es menor que 2
"""
while x>0:#se ciclará infinitamente
print(x)
x+=1 #por que en el ciclo a x se le suma 1
#y la condición es que cuando x sea mayor que 0 será impreso y se le será sumado 1
#y inicialmente ya es mayor que 0
"""
Programa 17
c=1
while True:#un ciclo while True se repite indefinidamente hasta que se rompa
if c<=3:#si c es menor o igual a 3 ejecutara el try-except
try:
x=int(input("dame un numero: "))
if x==1:#si lo dado es igual a 1 imprimirá campeón
print("campeón")
elif x<=2 or x>=3: #condición secundaria
print("Ya casi ;")
elif x<= 4 or x>=5:#condición secundaria
print("sigue compitiendo")
else:#si el if o algun elif se cumple ejecutará else
print("seguro compites?")
except:#se ejecuta si lo dado no es un número
print("No es numero: ")
c+=1#incermenta al contador 1 despues de cada intento
else:#si c llega a ser mayor o igual a 3 se rompe el ciclo
break
#acomulador= almacena los datos mediante operaciones aritméticas
#contador= cuenta con sumas y restas, incrementa o decrementa
Programa 18
#otro método
c=1
cuenta=1
while cuenta:#el ciclo while se ejecuta mientras cuenta no sea 0
if c<=3:#si c es menor o igual a 3 se ejecutará el try-except
try:
x=int(input("dame un numero: "))
if x==1:# si lo dado es igual a 1 imprimirá campeón
print("campeón")
elif x<=2 or x>=3: #condición secundaria
print("Ya casi ;")
elif x<= 4 or x>=5: #condición secundaria
print("sigue compitiendo")
else: #si el if o algun elif se cumple ejecutará else
print("seguro compites?")
except: #se ejecuta si lo dado no es un número
print("No es numero: ")
c+=1 #incermenta al contador 1 despues de cada intento
else:#si el if ya no se cumple, cuenta sera igual a 0 y el ciclo se romperá
cuenta=0
#acomulador= almacena los datos mediante operaciones aritméticas
#contador= cuenta con sumas y restas, incrementa o decrementa
Programa 19
#actividad tarea
#en este programa se realiza lo que debe realizar el programa previo
#pero con un while True y un while dentro del while True
#quiero que al dar el usuario incorrecto reste una oportunidad
usuario="hernan"
psw=1234
x=0
c=1
while True:
if c<=3:#si c es menor o igual a 3
user=input("dame el usuario: ")#es pedido el usuario
print("el usuario es: ", user)#se imprime el usuario dado por el usuario
if user==usuario:#si el usuario dado es igual al usuario correcto
while user==usuario:#se iniciará un ciclo while que solo se iniciará si el
#usuario dado es igual al usuario correcto
print("usuario correcto")#letrero que indica que el usuario es correcto
try:#es iniciado un try-except
if c<=3:#si c es menor o igual a 3
contraseña=int(input("dame la contraseña"))#es pedida la contraseña
#si la contraseña dada no es dada en puros numeros se ejecutará el except
if psw != contraseña :#si la contraseña dada es diferente a la correcta
print("contraseña incorrecta")
c+=1#es restada una oportunidad
else:
print("contraseña correcta")
c+=3#si la contraseña es correcta el ciclo se rompe
else:#si la condición if se deja de cumplir será roto el ciclo
break#es decir si se acaban las oportunidades
except:#dentro del except será restada una oportunidad
c+=1#por que la contraseña es tipo entera
print("contraseña incorrecta")
else:#si el usuario es incorrecto es restada una oportunidad
print("usuario incorrecto")
c+=1
Programa 20
#else y while
x=5
#en este while el ciclo empieza restando a "x" 1 y lo imprime
#imprimira x de 4 a 0, al x ya no cumplir la condición del while se ejecutará else
while x>0:
x-=1
print(x)
else:
print("fin del ciclo")
print("************************************")
x=5
#en este ciclo while True el ciclo empieza restando a "x" 1 y lo imprime
#sera roto el ciclo si x llega a valer 0
#X será impreso de 4 a 0 ya que el if esta al final
#else nunca entrará por que el ciclo se rompe antes
while True:
x-=1
print(x)
if x==0:
break
else:
print("fin") #nunca entrará
print("*************************************")
#permutaciones
i=0
j=0
#este programa genera y muestra todas las permutaciones posibles
# con dos índices (i, j), donde cada índice va desde 0 hasta 2
while i<3:#mientras i sea menor a 3 , i corresponde a los renglones
while j<3:#mientras j sea menor a 3
print("[",i,j,"]", end=' ')#se imprime i,j en el mismo renglón
j+=1# a j se le incrementa 1
i+=1#cuando el ciclo anterior se rompe se le incrementa a i 1
print(" ")#salto de linea
j=0#j se reinicia, lo que significa que se reinicirá el while j<3 si i<3
print("*************************************")
i,j,k=0,0,0
#este programa genera y muestra todas las permutaciones posibles
#con tres índices (i,j,k), donde cada índice va desde 0 a 2
while i<3:#mientras i sea menor a 3 , i corresponde a los renglones
while j<3:#mientras j sea menor a 3
while k<3:#mientras k sea menor a 3
print(i,j,k,end='|')#se imprime i,j,k en el mismo renglón
k+=1#a k se le incrementa 1
j+=1#a j se le incrementa 1
k=0#k se reinicia mientras j sea menor a 3 al finalizar el ciclo while k<3
print(" ")#mientras i sea menor a 3 se imprimirá un salto de linea al finalizar el ciclo while j<3
i+=1#será incrementado 1 a i
j=0#se reiniciará j mientras i sea menor a 3
Programa 21
#figura triangulo
z=7#z inicialmente vale 7
x=1#x inicialmente vale x
while z>0:#mientras z sea mayor que 0
print(' '*z+'*'*x+' '*z)#z multiplicará los espacios al principio
#x multiplicará los * y z a los espacios del final
x+=2#a x se le incrementará 2
z-=1# y a z se le restará 1, asi z disminuirá hasta valer 0
#cuando z valga 0 el ciclo se romperá
Programa 22
#figura de marco
try:
tam=int(input("Dame el tamaño para el marco: "))#es pedido el tamaño
if tam<2:
print("debe ser mayor a 2") #No es posible un marco con un tamaño<2
else:
j=tam#se crea una variable j que sera igual al tamaño
a='*'*tam#se crea una variable a que es igual a '*' por tam, para la primer linea del marco
b='*'+' '*(j-2)+'*'#se crea una variable b que representa el cuerpo del marco
print(a)#inicialmente se imprime la primer linea de asteriscos
i=0#se crea una variable i que vale 0
while i<=(j-2):#mientras i sea menor a (j-2), por que la primer y ultima linea son de asteriscos
print(b)#será impresa nuestra variable b
i+=1#a i se le incrementará 1
if i==tam-2:#si i llega a ser igual a tam-2
print(a)#imprimira la linea de asteriscos al final
i+=(j+2)#sirve para romper el ciclo
except:
print("no es numero")#el except se ejecutará si no es dado un número para el tamaño
print('********************************')
Programa 23
#figura cruz
#este programa imprime una cruz cuadrada con valores el tamaño dado por el usuario
#usando while
try:#el try y except sirven por si es dado un número
tam1=int(input("Dame el tamaño para la cruz: "))#es pedido el tamaño
if (tam1 %2)== 0:#para esta figura el tamaño no puede ser par
print("no. no valido")
elif tam1==1:#para esta figura el tamaño no puede ser 1
print("no. no valido")
else:
j=tam1#se crea una variable j que será igual al tamaño
c='*'*tam1#esta variable representa la linea de enmedio
d=' '*(tam1//2)+'*'+' '*((tam1//2))#representa las demas lineas
i=0#se crea una variable i que vale 0
while i<=((j//2-1)):#mientras i sea menor a la división entera de j entre 2 menos 1
print(d)# se imprimirá d
i+=1#a i se le incrementará 1
if i==((j//2)):#si i es igual a la división entera entre 2 de j-1
print(c)#se imprimirá una linea de asteriscos
i+=1#a i se le incrementará 1
while i<j:
#mientras i sea menor a j
print(d)#será impresa después de la linea de en medio los asteriscos laterales
i+=1#a i se le incrementará 1
except:
print("no es numero")#si no es dado un número para el tamaño se ejecutará el except
#figura triángulo invertido
try:#el try sirve por si el usuario no da un número
tam2=int(input("dame el tamaño del triángulo invertido en j: "))#pido el tamaño
t='*'*tam2#linea inicial de asteriscos
j=tam2#j sera igual al tamaño
k=0#se inicializa una variable k igual a 0
if(tam2 % 2)==0:#la piramide solo puede tener un tamaño impar
print("la piramide en j debe iniciar en un número impar")
else:
print(t)#es impresa la primer linea
while j>=1:#j ira siendo decreciendo -2 para cada linea
j-=2
k+=1#k que multiplicara a los espacios en blanco ira aumentando 1
print((' '*k)+('*'*(j))+(' '*k))#esta la estructura principal de como
#se imprimirán los asteriscos y serán mostrados espacios
#para formar la piramide invertida
except:
print("no es número")
Programa 25
#secuencia de fibonacci
a,b=0,1
while b<1000:
print(b,end=",")#end sirve para que todo se imprima en una sola linea separado por una coma
a,b=b,a+b#a será igual a b, y b será igual a a+b,antes será impreso b
Programa 26
#for
sec=["maria","tenia","un","corderito"]
#no es necesario declarar i, i es un indice
for i in sec:
print(i)
print("*******************************")
"""
for j in sec:
print(j,len(j))#imprimira la lista y su longitud en cada palabre
if len(j)>5:
sec.insert(0,"Mary Had")#se ciclara
"""
#actividad
sec1=("Mary","had")
x=0
while True:#dejará de ciclarse hasta que haya algo que lo rompa
while x<=1:
if len(sec)!=5:#si alguna palabra tiene una longitud diferente de 5
sec2=[sec1[0],sec1[1],sec[2],sec[3]]#las primeras palabras serán "Mary" "had"
print(sec2)
x+=2#rompe el ciclo
print("***********************")
for j in sec[:]: #[:] rebanada o slice toma la lista sec como elemento unico
print(j,len(j))#imprime cada palabra y su longitud
if len(j)>=5:#si alguna palabra es mayo o igual a 5
sec.insert(0,"mary had")#inserta al inicio mary had
print(sec)
Programa 27
#rangos
sec=["maria","tenia","un","corderito"]
for i in range(5):#imprime separados el rango de 0-4 ,empieza en 0
print(i)#i es un índice
print("******************************")
for i in range(len(sec)):#el range genera los numeros de 0 a la longitud de sec-1
print(i,sec[i])#imprime la posición y su elemento de la lista sec
print("******************************")
print(range(10))#imprime range 0-10 que es su rango
print(list(enumerate(sec)))#imprime como lista y enumera cada elemento
print(tuple(enumerate(sec)))#imprime como tupla y enumera cada elemento
print(dict(enumerate(sec)))#imprime como diccionario siendo las posiciones las llaves
a=list((range(10)))#hace una lista con elementos de 0-9
print(a)
Programa 28
#rangos a detalle
for i in (0,1,2,3,4,5):
print(i)#imprimirá uno por uno del 0 al 5
print("***************************************")
for i in range(6):
print(i)#imprimira uno por uno del 0 al 5
#range(inicio, fin, salto)
print(list(range(5,20,2)))#imprime en una lista del 5 al 19 en saltos de 2 en 2
for i in range(5,20,2):#imprime del 5 al 19 en saltos de 2 en 2
print(i)
for i in range(5,0,-1):#imprime del 5 al 0 en saltos de -1 en -1
print(i)
Programa 29
for i in range(2,21):#imprime de 2 al 20
print(i)
if i%2==0:#si es par imprime que es par
print("es par")
if i%2!=0:#si es impar imprime que es impar
print("es impar")
Programa 30
import datetime #biblioteca
while True:
try:
fecha=input("dame la fecha dd-mm-aaaa ")
fecha=datetime.datetime.strptime(fecha, "%d-%m-%Y")#convierte la cadena en formato fecha
break
except:
print("No es una fecha ")
print(fecha)
print(datetime.datetime.now())#imprime la fecha y hora actual
fecha1=datetime.date(2025,3,25)#convierte en formato fecha
print(fecha1)
fecha2=datetime.date(2025,3,12)#convierte en formato fecha
print(fecha2)
hora=datetime.time(7,15,0)#convierte en formato hora
print(hora)
print(fecha1-fecha2)#resta dos fechas y devuelve la diferencia de dias
Programa 31
#En este programa se restó la fecha actual con una fecha de nacimiento dada
import datetime
while True:
try:
fecha1=input("dame tu fecha de nacimiento dd-mm-aaaa")#Es pedida la fecha de nacimiento
fecha1=datetime.datetime.strptime(fecha1,"%d-%m-%Y")#Se convierte a formato datetime
break
except:
print("No es una fecha ")#el except se ejecutará si la fecha no es ingresada en
#el formato adecuado
while True:
try:
fecha2=input("dame la fecha de hoy dd-mm-aaaa ")#es pedida la fecha de hoy
fecha2=datetime.datetime.strptime(fecha2, "%d-%m-%Y")
break
except:
print("No es una fecha ")
print("has vivido: ", fecha2-fecha1)
#este print muestra la resta entre la fecha de hoy menos la fecha de nacimiento dada
#forma alternativa
op2='%s%s%s' % (fecha2.year - fecha1.year, fecha2.month - fecha1.month, fecha2.day - fecha1.day)
#op2 resta elemento por elemento(años,meses, dias) que conforman las fechas
print("usuario:",fecha1)
print(op2)#imprime la diferencia
Programa 32:
#funciones
def saludo(): #def es la palabra reservada, saludo es el identificador de la funcion
print("hiiiiiiiiiiii")
print("Dentro de la función")#esto se imprime dento de la función
print("?????????????")#primero se imprimira por estar sobre la función
saludo()#mandar a llamar la función
print("im out")#se imprime después de la función
Programa 33:
"""
def cuadro():
print("x*x")#lo mostraria como cadena
print(cuadro(4))#habrá error por que la función no acepta argumentos de entrada
"""
def cuad(x):
print("imprimi",x*x)
y=x*x#y de la función
cuad(4)#devolverá 16
print(cuad(5))#imprimirá 25 y none por no haber un return en la función
y=cuad(6)#esta es una "y" diferente a la que esta en cuad, devuelve 36, "y" no alamacenará nada
print(y)#none, por no haber un return
Programa 34:
def suma(a,b):
print("en función suma: ",a+b)
suma(5,8)# muestra la suma de 2 números(5=a, 8=b)
#tabla de multiplicar
#actividad
def tablamult(a):
for b in range(11):#b es índice, rango de 0-10
operación='{}*{}={}'.format(a,b,a*b)
print(operación)
try:
a=int(input("dame un número"))
except:
print("no es número")
tablamult(a)#es llamada la función con "a" como argumento de entrada
#forma alternativa
c=1
while c:
try:
val=int(input("Dame un número: "))
print(val,type(val))
tablamult(val)#es llamada la función con val como argumento de entrada
c=0#se rompe el ciclo
except:
print("No se puede multiplicar con eso")
#usando intermeso
def tablamultdos(a):
return("{}*{}={}".format(a,b,a * b)for b in range(11))
Programa 35:
def mult2(x,y=1):#"y" en la función vale 1, es valido hacerlo
print(x*y)
mult2(4)#da argumento de entrada a x de 4
Programa 36:
def multip(*args):
suma=0
print(args)#* sirve cuando queremos mandar a llamar a la función mas de 1 argumento
for i in range(5):
suma+=i
print(suma)
multip(1,2,3,4,5)#son impresos como tupla
#actividad
#dentro de la función suman los argumentos uno por uno
#y imprimirlos en una variable
def suma2(*suma1):#la función acepta varios argumentos de entrada
sumatotal=0
for i in suma1:
sumatotal += i
print(sumatotal)
return sumatotal
s=suma2(1,2,3,4,5)
print(s)#imprimirá lo que regresa el return
Programa 37:
def suma(*num):#* permite varios argumentos de entrada
print(type(num))
t=0
for i in num:
print(i)
t += i#t será igual a la suma total de los números dados como argumentos
return t#regresará t (la suma)
tot=suma(4,6,7,34)
print("suma es:",tot)#mostrará lo que esta en el return de la función
Programa 38:
def sumar(*num):
c=1
while c:
try:
n=int(input("Dame un numero: "))
#print(num,type(num))
linum=list(num)#convierte en lista los argumentos recibidos
#print(linum,type(linum))
c=0#rompe el ciclo de pedir un número
for i in range(len(linum)):
linum[i]=linum[i]+n#linum será igual a los argumentos recibidos mas el dado
#si es dado 2, a todos los elementos de la lista serán sumados +2
except:
print("Algo no funciona")
return linum
tot=sumar(24,67,89,34)
print(tot)#muestra lo que esta en el return
"""
#solucion al error que habia en el for
linum=[24,67,85,32]
n=5
for i in range(len(linum)):
linum[i]=linum[i]+n
print(linum[i])
"""
Programa 39:
#actividad
def IMC(*pesoyestatura):
c=1
while c:
try:
peso=int(input("Dame tu peso en kg: "))
#print(num,type(num))#depurar
altura=int(input("dame tu estatura: "))#converti a lista para que pueda ser modificable
#print(linum,type(linum))#depurar
c=0#rompe el ciclo de pedir un número
IMC1=(peso/((altura/100)**2))#formula de IMC al dar la altura en cm
except:
print("Algo no funciona")
return IMC1
print(IMC())
Programa 40:
#Este programa contiene una función que acepta como argumentos de entrada
#una lista de elementos almacenados en forma como clave y valor
#imprime cada clave y valor, y suma todos los valores
def suma(**kwargs):#con ** es posible tener como parámetro de entrada una lista de elementos
#almacenados en forma como clave y valor
su =0;
for key, value in kwargs.items():
print(key, value)
su += value
return su
print(suma(a=5, b=20, c=23))
#diccionario
Programa 41:
#este programa pide al usuario:
#cuantas llaves, las convierte a lista
#pide los elementos que tendra cada llave
#y pide los elementos y los agrega como items de las llaves
#en un diccionario
def totllave():
c=1
while c:
try:
pllave=int(input("cuantas llaves: "))
c=0
except:
print("algo no funciona")
return pllave#al ser impresa la función mostrará el numero de llaves
mllave=totllave()
nombrellaves=list(range(mllave))#convertir en lista en un rango
for i in nombrellaves:#este for es para darle nombre a las llaves en una variable nueva a la original
print("elemento ",nombrellaves[i]+1,",",end=" ")#letrero
nombrellaves[i]=input("dame el nombre de este elemento: ")
print(nombrellaves)
lista=nombrellaves
diccionario={}
def capvalores(lista):
try:
for j in lista:
print("elemento",j, end=" ")#letrero
cantelementos=int(input("cuantos elementos tendrá ?"))
elementos=[]
for k in range(cantelementos):
print("elemento",j,",","subelemento",k+1)#letrero
subelementos=input("dame el subelemento: ")
elementos.append(subelementos)#los subelementos dados de un elemento
#son agregados a la lista vacia elementos previamente creada
print(elementos)
diccionario[j]=elementos#serán agregados los elementos a la llave actual
#de acuerdo al for
print(diccionario)
except:
print("algo salio mal")
return diccionario
capvalores(lista)
print(diccionario)#muestra lo que esta en el return
Programa 42:
#este programa mostrará mediante una función el resultado de la operación del return
#con argumentos y valores de entrada
#a=5 b=6
def si_suma(a,b):
'''
algo dentro
'''
return a+b#al imprimir mostrará el resultado de a+b
print(si_suma(5,6))#mostrará el resultado de la operación del return
#con valores de entrada
#a=5 b=6
Programa 43:
#este programa garantiza en una función recibir y mostras un valor y resultado entero
def multi(num: int)->int:#garantizamos que el parametro que llegue y salga sea entero
return num*3
#metadatos
print(multi(6))#si se da una letra habrá error
Programa 44:
#este programa mediante una función espera una lista, le agrega un 8 en su ultima posición
# y queda alterada
x=[23,65,78,89]#global
def funciona(entrada):
entrada.append(8)#agrega un 8 al final de la lista
funciona(x)#funciona espera una lista, y agrega un 8 al final de la lista
#altera x, ahora teniendo un 8 en una última y nueva posición
print(x)
Programa 45:
#este programa mediante una función espera una lista,hace una copia, y no destruye la lista originañ
x=[23,65,78,89]#global
def funciona(entrada):
entrada=[]#hace una copia pero no la destruye
print("entrada",entrada)#imprime la lista vacia
funciona(x)#funciona espera una lista
print(x)#comprobación de que no elimino los elementos de x, ni destruyo x
Programa 46:
x=10
print(id(x))#la posición de memoria de x que es un elemento unico
def funciona(entrada):
entrada=0
print(id(entrada))
funciona(x)#mostrará la posición de memoria de 0 y no de 10
#Este programa pedirá el numero de estudiantes en una función
#los guarda en una lista mediante range
#se establece un número de control inicial
#Se agregará a la lista de manera consecutiva teniendo incremento de 1
#Este programa solo captura 3 elementos(calificaciones) por cada número de control
#En el primer diccionario pide las 3 calificaciones y las agregará a una lista
#Esta lista representará las calificaciones de un numero de control
#este proceso se realizará en otra función
#y se agregaran a ese número de control como elementos, y repetirá el proceso
#en el siguiente número de control hasta abarcar todos
#en el siguiente diccionario:
#con un for cambia a enteros las calificaciones en una lista
#esa lista sera sumada y será dividida entre el total de calificaciones para el promedio
#el promedio es agregado como cuarto elemento de la lista de calificaciones enteras
#en la misma función esa lista representa las 3 calificaciones y el promedio y
#esa lista será agregada como elementos por las llaves(números de control)
def numestudiantes():
c=1
while c:
try:
nestudiantes=int(input("cuantos estudiantes: "))
c=0
except:
print("algo no funciona")
return nestudiantes
totestudiantes=numestudiantes()
numcontrolvarios=list(range(totestudiantes))#convertir en lista en un rango
print(numcontrolvarios)
numcontrol1=23150715
j=0
while j<totestudiantes:
i=0
numcontrolvarios[j]=numcontrol1 +j
j+=1
i+=1
print(numcontrolvarios)
lista=numcontrolvarios
diccionario={}
def capcalificaciones(lista):
try:
for j in lista:
cantelementos=3
elementos=[]
for k in range(cantelementos):
print("elemento",j,",","calificación",k+1)#letrero
subelementos=input("dame el la calificación: ")
elementos.append(subelementos)
print(elementos)
diccionario[j]=elementos
print(diccionario)
except:
print("algo salio mal")
return diccionario
capcalificaciones(lista)
print("diccionario con promedio: ")
def cappromedio(diccionario):
diccionariopromedio={}
for clave, calificaciones in diccionario.items():
califint=[]
for cal in calificaciones:
califint.append(int(cal))
promedio= sum(califint)/len(calificaciones)
califint.append(promedio)
diccionariopromedio[clave]=califint
print(diccionariopromedio)
return diccionariopromedio
cappromedio(diccionario)
Programa 48:
#La función recibe argumentos de entrada:
#uno para a
#otro diferente para b
#argumentos como tupla
#argumentos clave:valor
def funcionar(a,b,*args, **kwargs):
print("a= ",a)
print("b= ",b)
for arg in args:#arg es el índice
print("args= ",arg)#mostrará los elementos en la tupla
for key,value in kwargs.items():
print(key, "=", value)#mostrará las claves:valores
funcionar(10,20,1,2,3,4,x="hola",y="tu",z="hey")#argumentos de entrada
Programa 49:
#este programa es similar al pasado
#la diferencia es que *args ya está predefinido como lista
#y **kwargs como diccionario
def funcionar(a,b,*args, **kwargs):
print("a= ",a)
print("b= ",b)
for arg in args:
print("args= ",arg)
for key,value in kwargs.items():
print(key, "=", value)
args=[1,2,3,4]
kwargs={'x':"hola",'y':"tu",'z':"hey"}
funcionar(10,20,*args,**kwargs)
Programa 50:
#no necesariamente se deben llamar args y kwargs
#aqui los llame diferente
def funcionar(a,b,*listaaa, **llaveee):
print("a= ",a)
print("b= ",b)
for arg in listaaa:
print("args= ",arg)
for key,value in llaveee.items():
print(key, "=", value)
listaaa=[1,2,3,4]
llaveee={'x':"hola",'y':"tu",'z':"hey"}
funcionar(10,20,*listaaa,**llaveee)
Programa 51:
# Cada parámetro tiene una anotación entre comillas, la de return será 'retorno'
def suma(a:'parametro1',b:'parametro2')->'retorno':
return a+b
# __annotations__ guarda las anotaciones de los parámetros y del retorno
print(suma.__annotations__)#imprime las anotaciones
Programa 52:
class ClaseUno:#clase
pass#no hará nada
# Se define una función llamada funciona que recibe un parámetro 'a'
# El parámetro 'a' debe ser de tipo ClaseUno, según la anotación
# La función devolverá un valor del mismo tipo: ClaseUno
def funciona(a:ClaseUno)->ClaseUno:#siempre que sea usado -> es necesario un return
return a
a=ClaseUno
funciona(a)#no se mostrará nada por que ClaseUno no contiene nada
Programa 53:
def pares(sal:'list'=[])->'list':
return [i for i in sal if i%2==0]#en los ternarios lo primero que esta es lo que regresa
'''
for i in sal:
if i%2==0:
print(i)
else:
pass
'''
print(pares([1,2,3,4,5,6]))#pares lleva () por se una función
#imprimirá lo que esta en el return
#solo imprimirá los pares por el if
Programa 54:
#PU3cincuentacuatro.py
#lo usaremos como biblioteca
def sumar(a,b):
return a+b
def restar(a,b):
return a-b
Programa 55:
import PU3cincuentacuatro
#manda a llamar lo que importa
print(PU3cincuentacuatro.sumar(5,7))#imprimirá lo que regresa la función suma
#con a=5, b=7
#del programa que importamos como biblioteca
print(PU3cincuentacuatro.restar(8,3))#imprimirá lo que regresa la función resta
#con a=8, b=3
#del programa que importamos como biblioteca
Programa 56:
import PU3treintacuatro
#en este programa tengo la tabla de múltiplicar como función
a=int(input("dame el valor para la tabla de multiplicar"))
print(PU3treintacuatro.tablamult(a))#se manda a llamar la función tablamult
#del programa importado como biblioteca con argumento de entrada a
print("**************************************")
#con intermeso
print("Tabla de multiplicar con intermeso:")
for resultado in PU3treintacuatro.tablamultdos(a): #esta función hace lo mismo
print(resultado) #sólo que la hice con un intermeso
Comentarios
Publicar un comentario