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".
Desafío
PrincipianteEscribe 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):
- Una variable
ageestá definida y se le asigna un valor desde la entrada - Una variable
with_parentestá definida y se le asigna un valor booleano — esTruesi la entrada es"true", oFalsesi la entrada es"false" - Una variable
messageestá definida con el valor"None"
Tu tarea:
Usa sentencias if-else anidadas para establecer la variable message a una de las siguientes cadenas:
- Si age es 18 o mayor, establece
messagea"You can watch any movie". - Si age es menor de 18:
- Si
with_parentesTrue, establecemessagea"You can watch PG-13 movies". - Si
with_parentesFalse, establecemessagea"You can only watch G-rated movies".
- Si
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)Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentals
4Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 3Operadores lógicos Parte 47Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada de datos10FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz2Variables
NúmerosStringBooleanConvenciones de nomenclaturaVariables vacíasRepaso - Inicializar variables8Bucles
Bucle ForBucle WhileBreakContinueRepaso - FactorialLa función RangeBucle anidadoRepaso - Entrada dinámica3Operadores Parte 1
Operadores aritméticosOperador móduloAtajos aritméticosResumen - Matemáticas simplesOperadores de comparación9Funciones
Declarar una funciónArgumentosRetornoResumen - Función SigmaResumen - Función de validaciónValores por defecto