CAP 03 · LEC 01·Control de flujo

if / elif / else: tomar decisiones en Python

Las decisiones son el alma de cualquier programa. if, elif y else en Python tienen una sintaxis clara que hace que el código fluya como una conversación.

● PRINCIPIANTE7 min lectura4 ejerciciospor Fernando Herrera · actualizado mayo de 2026
¿Encontraste un error o algo que mejorar?Editá esta lección en GitHub →

if básico

El bloque if ejecuta código solo si la condición es verdadera. La indentación (4 espacios) delimita el bloque — no hay llaves {}:

edad = 20 if edad >= 18: print("Eres mayor de edad") print("Puedes votar") # Si la condición es False, el bloque se omite temperatura = 10 if temperatura > 30: print("Hace calor") # ← no se ejecuta print("Fin del programa") # ← siempre se ejecuta
SalidaEres mayor de edad Puedes votar Fin del programa
La indentación es parte de la sintaxis

En Python, la indentación no es opcional ni decorativa — es parte de la sintaxis. Un error de indentación es un IndentationError que impide que el programa corra. Usa siempre 4 espacios (no tabs) por nivel.

elif y else

elif es la contracción de «else if». else captura todos los casos que no cumplieron ninguna condición anterior:

nota = 75 if nota >= 90: calificacion = "A" elif nota >= 80: calificacion = "B" elif nota >= 70: calificacion = "C" elif nota >= 60: calificacion = "D" else: calificacion = "F" print(f"Nota: {nota} → Calificación: {calificacion}") # if / else en una sola expresión (ternario) mensaje = "aprobado" if nota >= 60 else "reprobado" print(f"Estado: {mensaje}")
SalidaNota: 75 → Calificación: C Estado: aprobado

Python evalúa las condiciones en orden y ejecuta solo el primer bloque verdadero. Una vez que una condición es True, el resto de elif y else se ignoran.

Valores «falsy» en Python

En Python, no solo False es falso. Los siguientes valores se comportan como False en un contexto booleano:

# Valores falsy — se comportan como False en un if valores_falsy = [ False, # el False literal 0, # el cero (int) 0.0, # el cero (float) "", # string vacío [], # lista vacía {}, # dict vacío (), # tupla vacía None, # ausencia de valor ] for valor in valores_falsy: if not valor: print(f"{repr(valor):15} → falsy") # Todo lo demás es truthy if "texto": print("Los strings no vacíos son truthy") if [1, 2, 3]: print("Las listas no vacías son truthy") if 42: print("Los enteros != 0 son truthy")
SalidaFalse → falsy 0 → falsy 0.0 → falsy '' → falsy [] → falsy {} → falsy () → falsy None → falsy Los strings no vacíos son truthy Las listas no vacías son truthy Los enteros != 0 son truthy
Aprovecha los valores falsy

En lugar de if len(lista) > 0:, en Python se escribe if lista:. En lugar de if nombre != "":, se escribe if nombre:. Este estilo es más idiomático y conciso.

Condiciones compuestas

Puedes combinar condiciones con and, or y not, y encadenar comparaciones directamente:

edad = 25 tiene_carnet = True puntos_multa = 3 # Condiciones con and / or / not if edad >= 18 and tiene_carnet: print("Puede conducir") if edad < 16 or not tiene_carnet: print("No puede conducir") # Encadenamiento de comparaciones (exclusivo de Python) if 0 < puntos_multa <= 3: print("Sin restricciones") elif 4 <= puntos_multa <= 8: print("Conducción restringida") else: print("Carnet suspendido") # Validación de contraseña con múltiples condiciones password = "MiPass123" tiene_minuscula = any(c.islower() for c in password) tiene_mayuscula = any(c.isupper() for c in password) tiene_numero = any(c.isdigit() for c in password) es_larga = len(password) >= 8 if tiene_minuscula and tiene_mayuscula and tiene_numero and es_larga: print("Contraseña segura ✓") else: print("Contraseña débil ✗")
SalidaPuede conducir Sin restricciones Contraseña segura ✓

Practica

Cuatro ejercicios para dominar las decisiones en Python.