Condicionales: if, elif, else
¿Qué son las estructuras condicionales?
Las estructuras condicionales son fundamentales en programación. Permiten que tu código tome decisiones basándose en condiciones específicas. En Python, utilizamos las palabras clave if, elif y else para implementar esta lógica de decisión.
Imagina que estás construyendo un programa que clasifica temperaturas. Sin condicionales, tu programa haría exactamente lo mismo sin importar si hace calor o frío. Con condicionales, puedes hacer que tu programa responda diferente según la situación.
Sintaxis básica de if
La estructura más simple es if. Su sintaxis es:
if condición:
# código a ejecutar si la condición es verdadera
Es crucial entender que en Python, la indentación (espacios al inicio de la línea) define qué código pertenece al bloque condicional. Python requiere que el código dentro del if esté indentado.
- Escribe la palabra clave
ifseguida de una condición que pueda ser verdadera o falsa. - Agrega dos puntos (:) al final de la línea del if.
- Indenta el código que quieres ejecutar cuando la condición sea verdadera (usualmente 4 espacios).
- Escribe el código que se ejecutará si la condición se cumple.
Ejemplo práctico de if
edad = 18
if edad >= 18:
print("Eres mayor de edad")
print("Puedes votar")
💡 Consejo: Utiliza paréntesis en condiciones complejas para mejorar la legibilidad. Por ejemplo: if (edad >= 18 and tiene_identificacion): es más claro que if edad >= 18 and tiene_identificacion:
Agregando alternativas con else
El bloque else nos permite ejecutar código cuando la condición del if es falsa. Es como un "plan B" automático.
edad = 15
if edad >= 18:
print("Eres mayor de edad")
else:
print("Eres menor de edad")
Múltiples condiciones con elif
Cuando necesitas verificar múltiples condiciones, usa elif (abreviatura de "else if"). Puedes encadenar tantos elif como necesites.
- El
ifse evalúa primero: si es verdadero, se ejecuta su bloque y se saltan el resto de condiciones. - Los
elifse evalúan en orden: solo se ejecutan si todos losif/elifanteriores fueron falsos. - El
elsees opcional: solo se ejecuta si ninguna condición anterior fue verdadera.
nota = 85
if nota >= 90:
print("Excelente")
elif nota >= 80:
print("Muy bien")
elif nota >= 70:
print("Bien")
elif nota >= 60:
print("Suficiente")
else:
print("Necesitas mejorar")
Operadores de comparación
Para construir condiciones, necesitas conocer los operadores de comparación:
| Operador | Significado | Ejemplo |
|---|---|---|
| == | Igual a | x == 5 |
| != | Diferente de | x != 3 |
| > | Mayor que | x > 10 |
| < | Menor que | x < 20 |
| >= | Mayor o igual que | x >= 0 |
| <= | Menor o igual que | x <= 100 |
Condiciones compuestas con operadores lógicos
Puedes combinar múltiples condiciones usando operadores lógicos:
| Operador | Descripción | Ejemplo |
|---|---|---|
and |
Ambas condiciones deben ser verdaderas | if edad >= 18 and tiene_licencia: |
or |
Al menos una condición debe ser verdadera | if es_finde_semana or es_feriado: |
not |
Invierte el valor de verdad | if not esta_lloviendo: |
edad = 25
tiene_dinero = True
if edad >= 18 and tiene_dinero:
print("Puedes comprar el boleto")
else:
print("No cumples los requisitos")
⚠️ Error común: No confundas el operador de comparación == (dos iguales) con el operador de asignación = (un igual). Usar = en lugar de == en una condición puede causar errores sutiles o comportamientos inesperados en tu código.
Ejemplo integrador: Calculadora de IMC
Vamos a aplicar todo lo aprendido en un ejemplo completo que clasifica el índice de masa corporal:
peso = 70 # en kilogramos
altura = 1.75 # en metros
imc = peso / (altura ** 2)
print(f"Tu IMC es: {imc:.2f}")
if imc < 18.5:
print("Categoría: Bajo peso")
elif imc < 25:
print("Categoría: Peso normal")
elif imc < 30:
print("Categoría: Sobrepeso")
else:
print("Categoría: Obesidad")
- Calculamos el IMC usando la fórmula: peso / altura²
- Usamos f-strings para formatear la salida con 2 decimales
- Estructuramos las condiciones de menor a mayor, aprovechando que Python evalúa en orden
- El else final captura cualquier valor de IMC de 30 o superior
💡 Optimización: Cuando compares rangos como en el ejemplo del IMC, siempre ordena tus condiciones de menor a mayor (o viceversa). Esto te permite usar solo el límite superior en cada elif porque los casos anteriores ya fueron descartados.
Anidamiento de condicionales
Puedes colocar condicionales dentro de otros condicionales. Esto se llama anidamiento:
edad = 20
tiene_identidad = True
if edad >= 18:
print("Eres mayor de edad")
if tiene_identidad:
print("Y tienes identificación")
print("Puedes realizar trámites")
else:
print("Pero necesitas obtener identificación")
else:
print("Eres menor de edad")
⚠️ Cuidado: El anidamiento excesivo puede hacer tu código difícil de leer y mantener. Si necesitas más de 2-3 niveles de anidamiento, considera reorganizar tu lógica o usar funciones auxiliares.
Resumen de la sintaxis completa
if condición1:
# Bloque ejecutable si condición1 es verdadera
elif condición2:
# Bloque ejecutable si condición1 es falsa y condición2 es verdadera
elif condición3:
# Bloque ejecutable si las anteriores son falsas y condición3 es verdadera
else:
# Bloque ejecutable si todas las condiciones anteriores son falsas
Evaluación formativa
Pregunta 1: ¿Cuál es la salida del siguiente código?
x = 10
if x > 5:
print("A")
elif x > 7:
print("B")
else:
print("C")
Respuesta: A (Porque cuando x=10, la primera condición ya es verdadera, así que se ejecuta "A" y se omiten las demás)
Pregunta 2: ¿Qué palabra clave se usa para verificar una condición adicional cuando la anterior es falsa?
Respuesta: elif (también puede ser else if en otros lenguajes)
Pregunta 3: ¿Por qué es importante la indentación en Python?
Respuesta: Porque Python usa la indentación para definir qué código pertenece a cada bloque. Sin indentación correcta, Python generará un error de sintaxis.
Conclusión
Las estructuras condicionales if, elif y else son herramientas esenciales que te permiten crear programas inteligentes capaces de tomar decisiones. Dominar estos conceptos te abrirá las puertas a resolver problemas más complejos en Python.
🔑 Recuerda: La práctica es clave para dominar los condicionales. Experimenta con diferentes condiciones, combina operadores lógicos, y poco a poco podrás escribir lógica de decisión cada vez más compleja y elegante.
En la próxima lección, exploraremos las estructuras de datos en Python, donde aprenderás a organizar y manipular colecciones de datos de manera eficiente.