Semana 8 - Python - EJERCICIOS
🚀 ¡Desafío de Condicionales! 🚀
Pon a prueba tus habilidades con `if`, `elif` y `match` en Python
¡Es hora de practicar! Has aprendido las herramientas para que tu código tome decisiones. Ahora, enfrenta estas misiones para convertirte en un maestro de los condicionales. ¡Intenta resolver cada desafío por tu cuenta antes de ver la solución!
Misión 1: 🧑 Clasificador de Generaciones
Crea una función llamada clasificar_edad(edad) que reciba un número (la edad de una persona) y devuelva un string indicando a qué generación pertenece, según estas reglas:
- Si la edad es de 0 a 12: "Niñez"
- Si la edad es de 13 a 19: "Adolescencia"
- Si la edad es de 20 a 59: "Adultez"
- Si la edad es 60 o más: "Adultez mayor"
Pista: ¡Esta misión es perfecta para usar if-elif-else!
Solución con `if-elif-else`
def clasificar_edad(edad):
# Primero, verificamos la condición más baja.
if edad <= 12:
return "Niñez"
# Si la primera no fue cierta, probamos con la siguiente.
elif edad <= 19:
return "Adolescencia"
# Y así sucesivamente...
elif edad <= 59:
return "Adultez"
# Si ninguna de las anteriores fue verdadera, esta es la única opción que queda.
else:
return "Adultez mayor"
# --- Probando la función ---
print(f"10 años: {clasificar_edad(10)}") # Esperado: Niñez
print(f"17 años: {clasificar_edad(17)}") # Esperado: Adolescencia
print(f"35 años: {clasificar_edad(35)}") # Esperado: Adultez
print(f"70 años: {clasificar_edad(70)}") # Esperado: Adultez mayor
Misión 2: 🤖 Asistente de Robot de Pizzas
Estás programando un robot que toma pedidos de pizza. Crea una función obtener_ingredientes(pizza) que reciba el nombre de una pizza (un string) y devuelva sus ingredientes principales. Usa match-case para resolverlo.
- Si la pizza es
"Margarita": "Tomate, Mozzarella, Albahaca" - Si la pizza es
"Pepperoni": "Tomate, Mozzarella, Pepperoni" - Si la pizza es
"Hawaiana": "Tomate, Mozzarella, Jamón, Piña" - Para cualquier otra pizza: "Lo siento, no tenemos esa pizza en el menú."
Solución con `match-case`
def obtener_ingredientes(pizza):
# Usamos 'match' en la variable que queremos comparar.
match pizza:
# Cada 'case' es una de las opciones exactas.
case "Margarita":
return "Tomate, Mozzarella, Albahaca"
case "Pepperoni":
return "Tomate, Mozzarella, Pepperoni"
case "Hawaiana":
return "Tomate, Mozzarella, Jamón, Piña"
# El case '_' es el comodín para cualquier otra cosa.
case _:
return "Lo siento, no tenemos esa pizza en el menú."
# --- Probando la función ---
print(f"Margarita: {obtener_ingredientes('Margarita')}")
print(f"Cuatro Quesos: {obtener_ingredientes('Cuatro Quesos')}")
Misión 3: 🎯 Acceso a la Bóveda Secreta
Crea una función verificar_acceso(usuario, nivel_seguridad). El acceso a la bóveda solo se concede si el usuario es "admin" Y su nivel de seguridad es mayor que 5. Si el usuario es "admin" pero su nivel no es suficiente, debe avisar. Si el usuario no es "admin", se le debe denegar el acceso directamente.
- Si usuario es "admin" Y nivel > 5: "Acceso concedido"
- Si usuario es "admin" Y nivel <= 5: "Nivel de seguridad insuficiente"
- Si el usuario no es "admin": "Acceso denegado"
Pista: ¡Aquí necesitarás un if dentro de otro if (anidado)!
Solución con `if` anidados
def verificar_acceso(usuario, nivel_seguridad):
# Primero, verificamos la condición principal: ¿es el usuario un admin?
if usuario == "admin":
# Si SÍ es admin, AHORA verificamos la segunda condición.
if nivel_seguridad > 5:
return "Acceso concedido"
else:
return "Nivel de seguridad insuficiente"
# Si NO es admin, denegamos el acceso directamente.
else:
return "Acceso denegado"
# --- Probando la función ---
print(f"Admin con nivel 7: {verificar_acceso('admin', 7)}") # Esperado: Acceso concedido
print(f"Admin con nivel 3: {verificar_acceso('admin', 3)}") # Esperado: Nivel de seguridad insuficiente
print(f"Invitado con nivel 10: {verificar_acceso('invitado', 10)}") # Esperado: Acceso denegado
if-elif y el operador and, sin anidar! A veces hay más de un camino correcto.
def verificar_acceso_alternativo(usuario, nivel_seguridad):
if usuario == "admin" and nivel_seguridad > 5:
return "Acceso concedido"
elif usuario == "admin":
return "Nivel de seguridad insuficiente"
else:
return "Acceso denegado"Misión 4: ☀️ Recomendador de Actividades
Crea una función recomendar_actividad(clima, es_fin_de_semana). La variable clima será un string ("soleado", "lluvioso" o "nublado") y es_fin_de_semana será un booleano (True o False).
- Si está
"soleado": Recomendar "Ir a la playa". - Si está
"lluvioso": Recomendar "Ver una película". - Si está
"nublado"y es fin de semana (True): Recomendar "Hacer una caminata". - Si está
"nublado"y no es fin de semana (False): Recomendar "Leer un libro".
Pista: ¡Esta es una gran oportunidad para combinar lo que has aprendido!
Solución combinando `if-elif` y `if` anidado
def recomendar_actividad(clima, es_fin_de_semana):
if clima == "soleado":
return "Ir a la playa"
elif clima == "lluvioso":
return "Ver una película"
elif clima == "nublado":
# Aquí, dentro del caso "nublado", necesitamos otra decisión.
if es_fin_de_semana:
return "Hacer una caminata"
else:
return "Leer un libro"
else:
return "Clima no reconocido. Mejor quédate en casa."
# --- Probando la función ---
print(f"Soleado: {recomendar_actividad('soleado', True)}")
print(f"Lluvioso: {recomendar_actividad('lluvioso', False)}")
print(f"Nublado en fin de semana: {recomendar_actividad('nublado', True)}")
print(f"Nublado en día de semana: {recomendar_actividad('nublado', False)}")
¡Felicitaciones por completar los desafíos!
La práctica constante es la clave para dominar la programación. ¡Sigue así!