Menu
Coddy logo textTech

If - Else anidados

Parte de la sección Fundamentals del Journey de Python de Coddy — lección 23 de 77.

Las sentencias If-Else anidadas te permiten comprobar múltiples condiciones al colocar una sentencia if-else dentro de otra. Puedes anidar un bloque if dentro de un bloque else — este es un patrón común y válido en Python.

Crea una sentencia if-else básica:

age = 18
title = "None"
if age >= 18:
    title = "Adult"
else:
    title = "Minor"

Ahora añadamos una condición anidada dentro del bloque else:

age = 18
title = "None"
allowed_to_drink = False
if age >= 18:
    title = "Adult"
else:
    title = "Minor"
    if age >= 13:
        title = "Teenager"
    else:
        title = "Child"

También puedes anidar una condición dentro del bloque if:

age = 25
title = "None"
allowed_to_drink = False
if age >= 18:
    title = "Adult"
    if age >= 21:
        allowed_to_drink = True
    else:
        allowed_to_drink = False
else:
    title = "Minor"

En ambos ejemplos, el if-else interno solo se ejecuta cuando se cumple la condición externa que lo contiene. Colocar una sentencia if dentro de un bloque else (o dentro de un bloque if) es completamente válido — esto es exactamente lo que lo hace "anidado".

challenge icon

Desafío

Principiante

Escribe un programa que determine la elegibilidad para una película basándose en la edad y la guía parental.

Código dado (no modificar):

  1. Una variable age está definida y se le asigna un valor desde la entrada
  2. Una variable with_parent está definida y se le asigna un valor booleano — es True si la entrada es "true", o False si la entrada es "false"
  3. Una variable message está definida con el valor "None"

Tu tarea:
Usa sentencias if-else anidadas para establecer la variable message a una de las siguientes cadenas:

  1. Si age es 18 o mayor, establece message a "You can watch any movie".
  2. Si age es menor de 18:
    1. Si with_parent es True, establece message a "You can watch PG-13 movies".
    2. Si with_parent es False, establece message a "You can only watch G-rated movies".

Importante: Debido a que with_parent ya es un booleano, compruébalo directamente (por ejemplo, if with_parent:) — no lo compares con una cadena como "true" o "True".

Importante: Las cadenas deben coincidir exactamente — incluyendo mayúsculas y puntuación. Por ejemplo, usa "PG-13 movies" (con 'm' minúscula), no "PG-13 Movies".

Hoja de referencia

Las sentencias if-elif-else anidadas permiten la toma de decisiones jerárquica:

if condition1:
    if condition2:
        # Código para cuando ambas condiciones son verdaderas
    else:
        # Código para cuando condition1 es verdadera pero condition2 es falsa
else:
    # Código para cuando condition1 es falsa

Ejemplo de condiciones anidadas:

if age > 18:
    if has_license:
        print("You can drive")
    else:
        print("Get a license first")
else:
    print("Too young to drive")

El anidamiento puede ser infinito, permitiendo árboles de decisión complejos:

if condition1:
    if condition2:
        if condition3:
            # Más condiciones anidadas...

Pruébalo tú mismo

# Obtener la edad como un entero
age = int(input())

# Obtener la guía parental como un booleano (True/False)
with_parent = input() == "true"

# Declarar una variable llamada message con "None"
message = "None"

# Escribe tu código if-else anidado aquí


# No cambies nada debajo de esta línea
print(message)
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentals