condicionales en Python if elif else guía

Condicionales en Python — if, elif y else explicados desde cero

Los condicionales en Python if elif else son la primera herramienta que le da inteligencia a tu código. Hasta ahora tus programas ejecutaban todas las líneas en orden, de arriba a abajo, sin tomar ninguna decisión. Con los condicionales puedes hacer que Python ejecute unas instrucciones u otras dependiendo de si se cumple una condición. Es el salto de «programa que calcula» a «programa que decide».

¿Qué es un condicional?

Un condicional es una estructura que le dice a Python: «si se cumple esta condición, haz esto, si no, haz otra cosa». En la vida real tomamos decisiones condicionales constantemente: si llueve, cojo el paraguas; si no llueve, no lo cojo.

En Python esa misma lógica se escribe así:

llueve = True

if llueve:
    print("Cojo el paraguas")
else:
    print("No necesito paraguas")

La estructura if

La forma más simple de un condicional es solo el if. Si la condición es True ejecuta el bloque, si es False no hace nada:

nota = 7.5

if nota >= 5:
    print("Aprobado")

Dos cosas importantes que debes recordar siempre:

  • Los dos puntos : son obligatorios: al final de la línea del if. Es el error de sintaxis más común en primero, olvidar los dos puntos.
  • La indentación es obligatoria: el código que pertenece al if debe ir con 4 espacios de sangría. En Python la indentación no es opcional ni decorativa, es parte de la sintaxis. Si no indentas, Python da error.
# MAL — falta indentación
if nota >= 5:
print("Aprobado")    # IndentationError

# BIEN
if nota >= 5:
    print("Aprobado")

La estructura if/else

Cuando quieres hacer algo diferente si la condición no se cumple, añades else:

nota = 4.0

if nota >= 5:
    print("Aprobado")
else:
    print("Suspenso")

El else no lleva condición, simplemente se ejecuta cuando el if no se cumple. Solo puede haber un else por cada if, y siempre va al final.

La estructura if/elif/else

Cuando necesitas comprobar más de dos posibilidades usas elif, abreviación de «else if»:

nota = 7.5

if nota >= 9:
    print("Sobresaliente")
elif nota >= 7:
    print("Notable")
elif nota >= 5:
    print("Aprobado")
else:
    print("Suspenso")

Python comprueba las condiciones en orden de arriba a abajo y ejecuta el primer bloque cuya condición sea True. Una vez encuentra uno, ignora el resto. Puedes tener tantos elif como necesites, pero solo un if al principio y un else al final.

Condicionales anidados

Puedes poner un if dentro de otro if. Se llaman condicionales anidados y son útiles cuando necesitas comprobar varias condiciones relacionadas:

edad = 20
tiene_carnet = True

if edad >= 18:
    if tiene_carnet:
        print("Puede conducir")
    else:
        print("Mayor de edad pero sin carnet")
else:
    print("Menor de edad, no puede conducir")

Aunque funcionan bien, los condicionales anidados pueden volverse difíciles de leer si hay muchos niveles. En esos casos es mejor combinar condiciones con and y or:

# Más limpio usando and
if edad >= 18 and tiene_carnet:
    print("Puede conducir")
elif edad >= 18:
    print("Mayor de edad pero sin carnet")
else:
    print("Menor de edad, no puede conducir")

El operador ternario — condicional en una línea

Python permite escribir un if/else simple en una sola línea. Se llama operador ternario o expresión condicional:

nota = 6.0
resultado = "Aprobado" if nota >= 5 else "Suspenso"
print(resultado)    # → Aprobado

Es útil para casos simples donde el if/else completo ocuparía cuatro líneas innecesariamente. No abuses de él, si la condición es compleja, mejor escribir el if/else completo para que sea más legible.

Errores comunes con condicionales en Python if elif else

Error 1 — Olvidar los dos puntos:

# MAL
if nota >= 5
    print("Aprobado")

# BIEN
if nota >= 5:
    print("Aprobado")

Error 2 — Usar = en vez de ==:

# MAL — esto es una asignación, no una comparación
if nota = 5:
    print("Cinco")

# BIEN
if nota == 5:
    print("Cinco")

Usa == para comparar, nunca =

Error 3 — Indentación incorrecta:

# MAL — el else no está alineado con el if
if nota >= 5:
    print("Aprobado")
        else:            # IndentationError
    print("Suspenso")

# BIEN
if nota >= 5:
    print("Aprobado")
else:
    print("Suspenso")

Error 4 — El orden de los elif importa:

# MAL — el primer elif atrapa todos los aprobados
if nota >= 5:
    print("Aprobado")
elif nota >= 7:
    print("Notable")    # nunca llega aquí
elif nota >= 9:
    print("Sobresaliente")    # nunca llega aquí

# BIEN — de mayor a menor
if nota >= 9:
    print("Sobresaliente")
elif nota >= 7:
    print("Notable")
elif nota >= 5:
    print("Aprobado")
else:
    print("Suspenso")

Este último error es especialmente traicionero porque el programa no da ningún error, simplemente siempre muestra «Aprobado» aunque la nota sea un 9. Es un error silencioso clásico.

Visualízalo con Python Tutor

Copia este código en pythontutor.com para ver exactamente qué bloque ejecuta Python según el valor de la nota:

nota = 8.5

if nota >= 9:
    resultado = "Sobresaliente"
elif nota >= 7:
    resultado = "Notable"
elif nota >= 5:
    resultado = "Aprobado"
else:
    resultado = "Suspenso"

print(resultado)

Prueba a cambiar el valor de nota y observa cómo Python salta directamente al bloque correcto ignorando el resto.

Resumen rápido

Los condicionales en Python if elif else son la base de cualquier programa que tome decisiones.

  • if comprueba una condición — si es True ejecuta el bloque
  • else se ejecuta cuando el if no se cumple
  • elif añade condiciones adicionales entre if y else
  • Los : al final son obligatorios — sin ellos SyntaxError
  • La indentación es obligatoria — sin ella IndentationError
  • El orden de los elif importa — pon siempre las condiciones de mayor a menor
  • Usa == para comparar, nunca =

En el próximo artículo practicamos los condicionales en Python con programas reales, un validador de datos y el clásico juego de adivinar el número.


Python conditionals — if, elif and else explained from scratch

Python conditionals if elif else are the first tool that gives your code intelligence. Until now your programs executed every line top to bottom with no decisions. With conditionals you can make Python execute different instructions depending on whether a condition is met.

What is a conditional?

A conditional tells Python: «if this condition is true, do this — otherwise, do something else.»

raining = True

if raining:
    print("Take umbrella")
else:
    print("No umbrella needed")

The if statement

grade = 7.5

if grade >= 5:
    print("Passed")

Two things always remember:

  • The colon : is mandatory: at the end of the if line. Most common syntax error in first year.
  • Indentation is mandatory: code inside if needs 4 spaces. In Python indentation is syntax, not style.
# WRONG — missing indentation
if grade >= 5:
print("Passed")    # IndentationError

# RIGHT
if grade >= 5:
    print("Passed")

if/else

grade = 4.0

if grade >= 5:
    print("Passed")
else:
    print("Failed")

if/elif/else

grade = 7.5

if grade >= 9:
    print("Outstanding")
elif grade >= 7:
    print("Good")
elif grade >= 5:
    print("Passed")
else:
    print("Failed")

Python checks conditions top to bottom and runs the first True block. Once found, it skips the rest.

Nested conditionals

age = 20
has_licence = True

if age >= 18:
    if has_licence:
        print("Can drive")
    else:
        print("Adult but no licence")
else:
    print("Too young to drive")

Cleaner with and:

if age >= 18 and has_licence:
    print("Can drive")
elif age >= 18:
    print("Adult but no licence")
else:
    print("Too young to drive")

Ternary operator

grade = 6.0
result = "Passed" if grade >= 5 else "Failed"
print(result)    # → Passed

Most common mistakes

Mistake 1 — Missing colon:

if grade >= 5    # SyntaxError: expected ':'

Mistake 2 — Using = instead of ==:

if grade = 5:    # SyntaxError

Mistake 3 — Wrong indentation:

if grade >= 5:
    print("Passed")
        else:    # IndentationError

Mistake 4 — Wrong elif order (silent error):

# WRONG — first elif catches everything
if grade >= 5:
    print("Passed")
elif grade >= 7:
    print("Good")    # never reached

# RIGHT — highest condition first
if grade >= 9:
    print("Outstanding")
elif grade >= 7:
    print("Good")
elif grade >= 5:
    print("Passed")
else:
    print("Failed")

This last one is especially tricky, no error, just wrong output every time.

Visualise with Python Tutor

grade = 8.5

if grade >= 9:
    result = "Outstanding"
elif grade >= 7:
    result = "Good"
elif grade >= 5:
    result = "Passed"
else:
    result = "Failed"

print(result)

Change grade and watch Python jump directly to the right block.

Quick summary

  • if checks a condition — runs block if True
  • else runs when if is False
  • elif adds extra conditions between if and else
  • : is mandatory — missing it causes SyntaxError
  • Indentation is mandatory — wrong indentation causes IndentationError
  • elif order matters — always put conditions from highest to lowest
  • Use == to compare, never =

In the next article, we’ll practice conditionals in Python with real programs, a data validator, and the classic number guessing game.

Publicaciones Similares

Un comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *