Unidad 3 Hernán Programación

 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

Programa 24

#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


Programa 47:


#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

Entradas más populares de este blog

Programación Unidad 4 Hernán

Programación Unidad 5 Hernán