¿Qué son los Condicionales?
Imagina que estás escribiendo un programa que determina si un estudiante aprueba o no un examen. Un estudiante aprueba si su calificación es mayor o igual a 60, pero si es menor, no aprueba. Esta es exactamente la clase de decisión que los condicionales nos permiten manejar en programación.
En Python, tenemos tres palabras clave principales para crear estructuras condicionales: if (si), elif (sino si) y else (sino). Estas nos permiten ejecutar diferentes bloques de código dependiendo de si una condición es verdadera o falsa.
La Estructura if Básica
La estructura más simple es if. Su sintaxis es:
if condición:
# Código que se ejecuta si la condición es verdaderaVeamos un ejemplo práctico:
edad = 18
if edad >= 18:
print("Eres mayor de edad")
print("Este mensaje siempre se muestra")En este ejemplo, como edad es 18, que es mayor o igual a 18, el programa imprimirá «Eres mayor de edad» y luego «Este mensaje siempre se muestra».
:) después de la condición. Son obligatorios en Python y marcan el inicio del bloque de código que depende del condicional.Agregando else: La Alternativa
¿Qué pasa si queremos ejecutar un código diferente cuando la condición es falsa? Para eso existe else:
edad = 15
if edad >= 18:
print("Eres mayor de edad")
else:
print("Eres menor de edad")Ahora, si edad es menor a 18, se ejecutará el bloque del else en lugar del bloque del if. El bloque else siempre se ejecuta cuando la condición del if es falsa.
else, lo cual causa un error de sintaxis. Recuerda: siempre se escribe else: con los dos puntos al final.Múltiples Condiciones con elif
¿Y si necesitamos verificar más de una condición? Supongamos que queremos clasificar una calificación en letras: A (90-100), B (80-89), C (70-79), D (60-69) y F (menor a 60). Aquí es donde elif se vuelve invaluable:
calificacion = 85
if calificacion >= 90:
print("Tu calificación es A")
elif calificacion >= 80:
print("Tu calificación es B")
elif calificacion >= 70:
print("Tu calificación es C")
elif calificacion >= 60:
print("Tu calificación es D")
else:
print("Tu calificación es F")¿Por qué funciona este código? Porque Python evalúa las condiciones en orden. Cuando encuentra la primera que es verdadera, ejecuta ese bloque y luego salta todos los demás, incluyendo el else final. Por eso no necesitamos verificar explícitamente que la calificación sea menor a 90 en el segundo elif: si llegamos hasta ahí, ya sabemos que no era mayor o igual a 90.
Operadores de Comparación
Para crear condiciones, necesitamos operadores de comparación. Aquí está la tabla completa:
| Operador | Significado | Ejemplo | Resultado |
|---|---|---|---|
| == | Igual a | 5 == 5 | Verdadero |
| != | Diferente de | 5 != 3 | Verdadero |
| > | Mayor que | 5 > 3 | Verdadero |
| < | Menor que | 3 < 5 | Verdadero |
| >= | Mayor o igual que | 5 >= 5 | Verdadero |
| <= | Menor o igual que | 3 <= 5 | Verdadero |
= (asignación) con == (comparación). x = 5 asigna el valor 5 a la variable x, mientras que x == 5 pregunta si x es igual a 5.Combinando Condiciones: and, or, not
A veces necesitamos verificar múltiples condiciones al mismo tiempo. Python nos ofrece tres operadores lógicos para esto:
- and: ambas condiciones deben ser verdaderas
- or: al menos una condición debe ser verdadera
- not: invierte el valor de verdad
edad = 25
ingresos = 50000
if edad >= 18 and ingresos > 30000:
print("Puedes solicitar la tarjeta de crédito")
else:
print("No cumples los requisitos")
# Ejemplo con or
tiene_carnet = True
tiene_coche = False
if tiene_carnet or tiene_coche:
print("Puedes conducir")
else:
print("No puedes conducir")if (edad >= 18 and ingresos > 30000) or tiene_trabajo:Condicionales Anidados
Puedes colocar un condicional dentro de otro. Esto se llama anidamiento:
edad = 20
tiene_dinero = True
if edad >= 18:
print("Eres mayor de edad")
if tiene_dinero:
print("Puedes comprar alcohol")
else:
print("No tienes dinero para comprar")
else:
print("Eres menor de edad")
print("No puedes comprar alcohol")Ejemplo Práctico: Calculadora de Descuentos
Vamos a crear un programa completo que aplique descuentos según el tipo de cliente:
- Solicitamos el precio original y el tipo de cliente
- Si es «vip», aplicamos 20% de descuento
- Si es «estudiante», aplicamos 15% de descuento
- Si es «jubilado», aplicamos 25% de descuento
- Para cualquier otro caso, no hay descuento
- Mostramos el precio final
precio_original = 100
tipo_cliente = "vip"
if tipo_cliente == "vip":
descuento = 20
print(f"Eres cliente VIP. Descuento del {descuento}%")
elif tipo_cliente == "estudiante":
descuento = 15
print(f"Eres estudiante. Descuento del {descuento}%")
elif tipo_cliente == "jubilado":
descuento = 25
print(f"Eres jubilado. Descuento del {descuento}%")
else:
descuento = 0
print("No tienes descuento disponible")
precio_final = precio_original - (precio_original * descuento / 100)
print(f"Precio original: ${precio_original}")
print(f"Precio final: ${precio_final}")Ver más: Versión con validación de entrada# Versión más robusta con validación
precio_str = input("Ingresa el precio del producto: ")
if precio_str.isdigit():
precio_original = float(precio_str)
tipo_cliente = input("Ingresa tu tipo de cliente (vip/estudiante/jubilado/ninguno): ").lower()
if tipo_cliente == "vip":
descuento = 20
elif tipo_cliente == "estudiante":
descuento = 15
elif tipo_cliente == "jubilado":
descuento = 25
else:
descuento = 0
precio_final = precio_original - (precio_original * descuento / 100)
print(f"Precio final: ${precio_final:.2f}")
else:
print("Error: Debes ingresar un precio válido")El Operador Ternario: Condicionales en Una Línea
Para asignaciones simples, Python ofrece una sintaxis más compacta llamada «operador ternario»:
edad = 20
# Forma tradicional
if edad >= 18:
categoria = "adulto"
else:
categoria = "menor"
# Usando operador ternario
categoria = "adulto" if edad >= 18 else "menor"
print(categoria)«El operador ternario es útil para asignaciones simples, pero no abuses de él. Si la lógica es compleja, la forma tradicional con if/else es más legible.»
Resumen de la Sintaxis
if condición1:
# Se ejecuta si condición1 es verdadera
elif condición2:
# Se ejecuta si condición1 es falsa y condición2 es verdadera
elif condición3:
# Se ejecuta si condición1 y condición2 son falsas y condición3 es verdadera
else:
# Se ejecuta si todas las condiciones anteriores son falsasRecuerda: puedes tener cualquier cantidad de elif, pero solo un if y un else por bloque. El else es opcional.
¿Qué se imprimirá en pantalla al ejecutar este código?
x = 10
if x > 10:
print("A")
elif x == 10:
print("B")
else:
print("C")- A) A
- B) B
- C) C
- D) Se imprimirán A, B y C
x > 10 es falsa (x es igual a 10, no mayor). Luego se evalúa x == 10, que es verdadera, por lo que se ejecuta el bloque del elif y se imprime «B». El bloque else nunca se ejecuta porque ya se encontró una condición verdadera.¿Cuál es la diferencia entre = y == en Python?
- A) No hay diferencia, ambos comparan valores
- B)
=asigna un valor a una variable,==compara si dos valores son iguales - C)
==asigna un valor a una variable,=compara si dos valores son iguales
= se usa para ASIGNAR un valor a una variable, mientras que == se usa para COMPARAR si dos valores son iguales y devuelve True o False.Conclusión
Los condicionales son fundamentales en programación. Te permiten crear programas que responden dinámicamente a diferentes situaciones. Domina el uso de if, elif y else, junto con los operadores de comparación y lógicos, y tendrás una base sólida para resolver problemas cada vez más complejos.