If - Else anidados
Parte de la sección Fundamentos del Journey de Python de Coddy. Lección 23 de 77.
Las instrucciones if-else anidadas te permiten comprobar varias condiciones colocando una instrucción 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 instrucción 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, la estructura if-else interna solo se ejecuta cuando se cumple la condición externa que la contiene. Colocar una instrucción if dentro de un bloque else (o dentro de un bloque if) es completamente válido. Esto es precisamente lo que hace que esté «anidada».
Desafío
PrincipianteEscribe un programa que determine si una persona puede ver una película según su edad y la supervisión parental.
Código proporcionado (no modificar):
- Se define una variable
agey se le asigna un valor introducido por el usuario - Se define una variable
with_parenty se le asigna un valor booleano. EsTruesi la entrada es"true", oFalsesi la entrada es"false" - Se define una variable
messagecon el valor"None"
Tu tarea:
Usa sentencias if-else anidadas para establecer la variable message en una de las siguientes cadenas:
- Si la edad es de 18 años o más, establece
messageen"You can watch any movie". - Si la edad es menor de 18 años:
- Si
with_parentesTrue, establecemessageen"You can watch PG-13 movies". - Si
with_parentesFalse, establecemessageen"You can only watch G-rated movies".
- Si
Importante: Como 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, incluidas las mayúsculas y la puntuación. Por ejemplo, usa "PG-13 movies" (con la «m» en minúscula), no "PG-13 Movies".
Pruébalo tú mismo
# Obtén la edad como un entero
age = int(input())
# Obtén la orientación parental como un booleano (True/False)
with_parent = input() == "true"
# Declara una variable llamada message con "None"
message = "None"
# Escribe tu código if-else anidado aquí
# No cambies 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 Fundamentos
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 defectoPractica por tu cuenta: Compilador de Python online