Lección 5 · Decisiones

Lección 5: Condicionales (if/elif/else)


🎯 Objetivo

Tomar decisiones en el programa usando if, elif y else.

📘 Explicación

Un condicional ejecuta un bloque de código solo si una condición es verdadera.

La indentación (espacios) es obligatoria en Python: define qué líneas pertenecen al bloque.

🔑 Conceptos clave

  • if: si se cumple la condición
  • elif: otra condición (opcional)
  • else: caso contrario (opcional)
  • Indentación: 4 espacios por nivel (recomendado)

🧩 Ejemplos

Ejemplo 1: if simple

edad = 20
if edad >= 18:
    print("Mayor de edad")

Ejemplo 2: if/else

n = 7
if n % 2 == 0:
    print("Par")
else:
    print("Impar")

Ejemplo 3: elif

nota = 8
if nota >= 9:
    print("Excelente")
elif nota >= 7:
    print("Aprobado")
else:
    print("Reprobado")

Ejemplo 4: Condición compuesta

usuario = "admin"
clave = "1234"
if usuario == "admin" and clave == "1234":
    print("Acceso")
else:
    print("Denegado")

Ejemplo 5: Operador ternario

edad = 16
mensaje = "Mayor" if edad >= 18 else "Menor"
print(mensaje)

🧪 Ejercicios propuestos

  1. Dado un número n, imprime si es positivo, negativo o cero.
  2. Dada una nota (0–10), imprime: Excelente (>=9), Bueno (>=7), Regular (>=5), Insuficiente (<5).
  3. Dado un año, verifica si es bisiesto (divisible por 4 y no por 100, o divisible por 400).
  4. Dado precio y cantidad, aplica descuento: 10% si total>=100.
  5. Dado edad, imprime si puede votar (>=16) y si es mayor de edad (>=18).
  6. Dado usuario y clave, permite acceso solo si ambos son correctos.
  7. Dado un número, imprime si está en el rango [1..100].
  8. Dado un número, imprime si es múltiplo de 3 y de 5.
  9. Dado temperatura, imprime: Frío (<15), Templado (15-25), Calor (>25).
  10. Usa operador ternario para imprimir “Par” o “Impar” según n.
✅ Ver soluciones explicadas (10 ejercicios)

Intenta primero. Luego compara con estas soluciones y lee la explicación.


Ejercicio 1: Dado un número n, imprime si es positivo, negativo o cero.

n = -3
if n > 0:
    print("Positivo")
elif n < 0:
    print("Negativo")
else:
    print("Cero")

Explicación: 3 casos con elif.


Ejercicio 2: Dada una nota (0–10), imprime: Excelente (>=9), Bueno (>=7), Regular (>=5), Insuficiente (<5).

nota = 6
if nota >= 9:
    print("Excelente")
elif nota >= 7:
    print("Bueno")
elif nota >= 5:
    print("Regular")
else:
    print("Insuficiente")

Explicación: Ordena de mayor a menor.


Ejercicio 3: Dado un año, verifica si es bisiesto (divisible por 4 y no por 100, o divisible por 400).

anio = 2024
bisiesto = (anio % 4 == 0 and anio % 100 != 0) or (anio % 400 == 0)
print(bisiesto)

Explicación: Regla estándar de año bisiesto.


Ejercicio 4: Dado precio y cantidad, aplica descuento: 10% si total>=100.

precio = 25
cant = 5
total = precio * cant
if total >= 100:
    total = total * 0.90
print(total)

Explicación: Multiplica por 0.90 para 10% off.


Ejercicio 5: Dado edad, imprime si puede votar (>=16) y si es mayor de edad (>=18).

edad = 17
if edad >= 16:
    print("Puede votar")
else:
    print("No puede votar")

if edad >= 18:
    print("Mayor de edad")
else:
    print("Menor de edad")

Explicación: Dos validaciones independientes.


Ejercicio 6: Dado usuario y clave, permite acceso solo si ambos son correctos.

usuario = "admin"
clave = "1234"
if usuario == "admin" and clave == "1234":
    print("Acceso")
else:
    print("Error")

Explicación: Usa and.


Ejercicio 7: Dado un número, imprime si está en el rango [1..100].

n = 150
if 1 <= n <= 100:
    print("En rango")
else:
    print("Fuera de rango")

Explicación: Comparación encadenada.


Ejercicio 8: Dado un número, imprime si es múltiplo de 3 y de 5.

n = 30
if n % 3 == 0 and n % 5 == 0:
    print("Múltiplo de 3 y 5")
else:
    print("No cumple")

Ejercicio 9: Dado temperatura, imprime: Frío (<15), Templado (15-25), Calor (>25).

t = 22
if t < 15:
    print("Frío")
elif t <= 25:
    print("Templado")
else:
    print("Calor")

Explicación: El segundo rango usa <= 25.


Ejercicio 10: Usa operador ternario para imprimir “Par” o “Impar” según n.

n = 9
print("Par" if n % 2 == 0 else "Impar")

Explicación: Ternario en una línea.

⚠️ Errores comunes

  • Olvidar los dos puntos: if edad >= 18 ❌ debe ser if edad >= 18:
  • Indentación incorrecta: si no está bien alineado, Python da error.
  • Orden incorrecto en rangos: primero condiciones más altas, luego más bajas.