Condicionales: if, elif, else

Lectura
25min~5 min lectura

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.

  1. Escribe la palabra clave if seguida de una condición que pueda ser verdadera o falsa.
  2. Agrega dos puntos (:) al final de la línea del if.
  3. Indenta el código que quieres ejecutar cuando la condición sea verdadera (usualmente 4 espacios).
  4. 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.

  1. El if se evalúa primero: si es verdadero, se ejecuta su bloque y se saltan el resto de condiciones.
  2. Los elif se evalúan en orden: solo se ejecutan si todos los if/elif anteriores fueron falsos.
  3. El else es 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")
  1. Calculamos el IMC usando la fórmula: peso / altura²
  2. Usamos f-strings para formatear la salida con 2 decimales
  3. Estructuramos las condiciones de menor a mayor, aprovechando que Python evalúa en orden
  4. 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.