Semana 8 - Python - EJERCICIOS

Pr谩ctica de Condicionales en Python
Python Challenge

馃殌 ¡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
Versi贸n alternativa: ¡Tambi茅n podr铆as resolver esto con 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铆!

Entradas populares de este blog