Parte 18 — Condiciones anidadas
Un if dentro de otro
Podemos colocar una condición dentro de otra.
python terminal
cuenta_activa = True
saldo_actual = 1_000
gasto = 500
if cuenta_activa:
if gasto <= saldo_actual:
print("Gasto permitido.")
else:
print("Saldo insuficiente.")
else:
print("La cuenta está inactiva.")Esto se conoce como una condición anidada.
Niveles de indentación
python terminal
if cuenta_activa:
print("Cuenta activa.")
if gasto <= saldo_actual:
print("Saldo suficiente.")El primer bloque utiliza cuatro espacios.
El bloque interior utiliza ocho espacios.
text terminal
if principal:
instrucción principal
if secundaria:
instrucción secundariaEvitar demasiados niveles
Esto puede volverse difícil de leer:
python terminal
if cuenta_activa:
if not cuenta_bloqueada:
if gasto > 0:
if gasto <= saldo_actual:
print("Gasto aprobado.")Podemos simplificar con and:
python terminal
if (
cuenta_activa
and not cuenta_bloqueada
and gasto > 0
and gasto <= saldo_actual
):
print("Gasto aprobado.")O con validaciones mediante elif.
Cuándo son útiles
Las condiciones anidadas son útiles cuando la segunda pregunta solo tiene sentido si la primera se cumple.
Ejemplo:
python terminal
if opcion == "2":
ingreso = int(input("Monto del ingreso: "))
if ingreso > 0:
print("Ingreso válido.")
else:
print("Monto inválido.")Solo pedimos y validamos el ingreso si la opción seleccionada fue "2".