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 = ""
if age >= 18:
title = "Adult"
else:
title = "Minor"Ahora añadamos una condición anidada dentro del bloque else:
age = 18
title = ""
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 = ""
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 se ejecuta solo cuando se ejecuta el bloque que la contiene: la que está en el bloque else se ejecuta cuando age >= 18 es falso, y la que está en el bloque if se ejecuta cuando age >= 18 es verdadero. 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 de sus padres.
Nota: age y with_parent ya están definidos para ti, con distintos valores en cada caso de prueba. No los definas tú; simplemente úsalos.
Tu tarea:
Usa instrucciones if-else anidadas para asignar a la variable message una de las siguientes cadenas:
- Si age es 18 o más, asigna
messagea"You can watch any movie". - Si age es menor de 18:
- Si
with_parentesTrue, asignamessagea"You can watch PG-13 movies". - Si
with_parentesFalse, asignamessagea"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' minúscula), no "PG-13 Movies".
Pruébalo tú mismo
# Escribe aquí tu código if-else anidado
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