# IF: si se cumple una condición hacemos algo y si no, otra cosa
edad=20 # Declaramos una variable entera. También podríamos pedirla al usuario: edad = int(input("¿Cuántos años tienes? "))
if edad>=18: # Comprobamos si edad es mayor O IGUAL a 18
print("Mayor de edad") # Si la condición es True, ejecutamos este bloque (está indentado con 4 espacios)
else: # Si la condición es False, ejecutamos el bloque alternativo
print("Menor de edad") # Solo se ejecuta UNO de los dos bloques, nunca los dos
# -----------------------------------------------------------------------
# elif: si no se cumple una condición hacemos otra comprobación todas las veces que queramos
# Ideal para rangos
temperatura=25 # Prueba a cambiar este valor para ver cómo cambia el resultado
if temperatura<=0: # Primera comprobación. Si es True, entra aquí y SALTA todos los demás
print("Me congelo")
elif temperatura<=15: # Solo se comprueba si la anterior fue False
print("Hace frío") # Aquí ya sabemos implícitamente que temperatura > 0
elif temperatura<=25: # Solo se comprueba si todas las anteriores fueron False
print("¡Que buen tiempo")
elif temperatura<=35: # Podríamos añadir tantos elif como rangos necesitemos
print("El caloret")
else: # Captura cualquier caso que no haya entrado en ningún if/elif anterior
print("Me asfixio") # Con temperatura=25, entrará en el tercer elif (<=25)
# -----------------------------------------------------------------------
# ALTERNATIVA con ifs independientes (sin elif):
# Diferencia clave: aquí se evalúan TODAS las condiciones siempre,
# aunque ya hayamos encontrado una verdadera. Es menos eficiente.
# Por eso cuando los casos son excluyentes, es mejor usar elif.
if temperatura<=0:
print("Me congelo")
if temperatura>0 and temperatura<=15: # Necesitamos indicar el límite inferior porque no hay elif
print("Hace frío") # "and" significa que las DOS condiciones deben ser True
if temperatura>15 and temperatura<=25: # Equivalente más compacto: if 15 < temperatura <= 25
print("Que buen tiempo")
if temperatura>25 and temperatura<=35:
print("El caloret")
if temperatura>35:
print("Me asfixio")
# -----------------------------------------------------------------------
# función mayor a la que le pasamos dos números y nos devuelve el mayor
# mayor(1,2)->2 mayor(8,3)->8
# PASOS
# Defino la función y los parámetros
# Utilizo una variable para el resultado
# Hago el proceso de la función
# Devuelvo el resultado
def mayor(num1,num2): # "def" define la función. num1 y num2 son parámetros (valores de entrada)
resultado=0 # Inicializamos la variable de resultado. Buena práctica antes de usarla.
if num1>num2: # Comparamos los dos parámetros
resultado=num1 # Si num1 es mayor, guardamos num1
else:
resultado=num2 # Si no, guardamos num2 (incluye el caso en que sean iguales)
return resultado # "return" devuelve el valor al lugar donde se llamó la función
# ALTERNATIVA más corta: return num1 if num1 > num2 else num2
# ALTERNATIVA con max(): return max(num1, num2)
print(mayor(1,2)) # Llamamos a la función con 1 y 2 → devuelve 2
print(mayor(8,3)) # Llamamos con 8 y 3 → devuelve 8
print(mayor(6,9)) # Llamamos con 6 y 9 → devuelve 9
# -----------------------------------------------------------------------
a=int(input("Ingrese el primer número (0 para salir) ")) # int() convierte el texto del input a número entero
b=int(input("Ingrese el segundo número ")) # Si el usuario escribe letras, dará error (pruébalo)
while a!=0: # Bucle que se repite MIENTRAS a sea distinto de 0. Si el usuario escribe 0, el bucle termina.
print(f"El mayor de {a} y {b} es {mayor(a,b)}") # f-string: las variables entre {} se sustituyen por su valor
a = int(input("Ingrese el primer número (0 para salir)")) # Pedimos de nuevo para poder volver a comprobar el while
b = int(input("Ingrese el segundo número")) # Importante: si no actualizamos a, el bucle sería infinito
# -----------------------------------------------------------------------
# Vamos a crear una función cadena_mas_corta a la que le pasamos dos cadenas
# y nos devuelve la más corta
# cadena_mas_corta("Eva","María")->"Eva"
def cadena_mas_corta(cadena1,cadena2):
resultado=cadena1 # Asumimos que la primera cadena es la más corta (valor por defecto)
if len(cadena1)>len(cadena2): # len() devuelve el número de caracteres de una cadena
resultado=cadena2 # Si cadena1 es MÁS LARGA, entonces cadena2 es la más corta
# Ojo: si tienen la misma longitud, devuelve cadena1 (la asignada por defecto al inicio)
# ALTERNATIVA más corta: return cadena1 if len(cadena1) <= len(cadena2) else cadena2
# ALTERNATIVA con min(): return min(cadena1, cadena2, key=len)
return resultado # Devolvemos la cadena más corta
print(cadena_mas_corta("Eva","María")) # "Eva" tiene 3 letras, "María" tiene 5 → devuelve "Eva"
print(cadena_mas_corta("otorrinolaringólogo","patata")) # "patata" es más corta → devuelve "patata"
print(cadena_mas_corta("alubias","supercalifragilísticoespialidoso")) # "alubias" es más corta → devuelve "alubias"