Estructuras condicionales: if, elif y else
Introducción
Uno de los aspectos más importantes de la programación es la capacidad de tomar decisiones. En la vida real, constantemente evaluamos situaciones y actuamos según ciertas condiciones: "Si llueve, llevo paraguas; si no, llevo gafas de sol". En Python, estas decisiones se implementan mediante estructuras condicionales, principalmente con las sentencias if
, elif
y else
. Estas herramientas nos permiten ejecutar diferentes bloques de código dependiendo de si una condición es verdadera o falsa, dotando a nuestros programas de la inteligencia necesaria para adaptarse a diferentes situaciones. En este artículo, aprenderemos a utilizar estas estructuras para crear programas más flexibles y útiles.
La sentencia if
La estructura condicional básica en Python es la sentencia if
. Su sintaxis es:
if condicion:
# Código que se ejecuta si la condición es verdadera
Donde condicion
es una expresión que se evalúa como True
o False
.
Ejemplo básico de if
edad = 18
if edad >= 18:
print("Eres mayor de edad.")
En este ejemplo, el mensaje se mostrará solo si la variable edad
es mayor o igual a 18.
Indentación en las estructuras condicionales
En Python, la indentación (sangría) es crucial. El bloque de código que depende de una condición debe estar indentado, generalmente con 4 espacios:
temperatura = 30
if temperatura > 25:
print("Hace calor.")
print("Recuerda beber agua.")
print("Fin del programa.") # Este código siempre se ejecuta
Cuando la condición es verdadera, se ejecutan todas las líneas indentadas. La línea sin indentar se ejecuta siempre, independientemente de la condición.
La sentencia else
¿Qué ocurre si queremos ejecutar un código alternativo cuando la condición es falsa? Para ello utilizamos la sentencia else
:
edad = 16
if edad >= 18:
print("Eres mayor de edad.")
else:
print("Eres menor de edad.")
En este caso, si edad
es menor que 18, se ejecutará el bloque de código después de else
.
La sentencia elif
nota = 7.5
if nota < 5:
print("Suspenso")
elif nota < 7:
print("Aprobado")
elif nota < 9:
print("Notable")
else:
print("Sobresaliente")
Python evalúa cada condición en orden. En cuanto encuentra una condición verdadera, ejecuta el bloque de código correspondiente y salta fuera de toda la estructura condicional. Si ninguna condición es verdadera, ejecuta el bloque else
(si existe).
Evaluación de condiciones en cadena
Es importante entender cómo funciona la evaluación en cadena. Veamos otro ejemplo:
numero = 15
if numero > 0:
print("El número es positivo")
elif numero > 10:
print("El número es mayor que 10")
else:
print("El número es menor o igual a 0")
Aquí solo se imprimirá "El número es positivo", aunque también es cierto que el número es mayor que 10. Esto ocurre porque una vez que una condición es verdadera, las siguientes condiciones no se evalúan.
Condiciones anidadas
También podemos anidar estructuras condicionales, es decir, incluir un if
dentro de otro if
:
edad = 20
tiene_carnet = True
if edad >= 18:
print("Eres mayor de edad.")
if tiene_carnet:
print("Puedes conducir.")
else:
print("No puedes conducir sin carnet.")
else:
print("Eres menor de edad y no puedes conducir.")
La indentación adecuada es crucial para entender la estructura del código.
Expresiones condicionales compuestas
Podemos crear condiciones más complejas combinando varias condiciones con operadores lógicos:
Operador and
El operador and
requiere que ambas condiciones sean verdaderas:
edad = 25
ingresos = 2000
if edad > 18 and ingresos > 1000:
print("Puedes solicitar un préstamo.")
Operador or
El operador or
requiere que al menos una de las condiciones sea verdadera:
es_festivo = False
es_fin_de_semana = True
if es_festivo or es_fin_de_semana:
print("No hay que trabajar hoy.")
Operador not
El operador not
invierte el valor de una condición:
tiene_tareas = False
if not tiene_tareas:
print("¡Puedes jugar!")
Expresión condicional (operador ternario)
Python ofrece una forma abreviada de escribir condiciones simples, similar al operador ternario en otros lenguajes:
edad = 20
mensaje = "Mayor de edad" if edad >= 18 else "Menor de edad"
print(mensaje)
Esta sintaxis es útil para asignaciones condicionales simples, pero para lógica más compleja es mejor usar la forma estándar de if-else
.
Ejemplos prácticos
Calculadora simple
print("Calculadora simple")
num1 = float(input("Introduce el primer número: "))
num2 = float(input("Introduce el segundo número: "))
operacion = input("¿Qué operación deseas realizar? (+, -, *, /): ")
if operacion == "+":
resultado = num1 + num2
print(f"La suma es: {resultado}")
elif operacion == "-":
resultado = num1 - num2
print(f"La resta es: {resultado}")
elif operacion == "*":
resultado = num1 * num2
print(f"La multiplicación es: {resultado}")
elif operacion == "/":
if num2 != 0: # Evitamos división por cero
resultado = num1 / num2
print(f"La división es: {resultado}")
else:
print("Error: No se puede dividir por cero.")
else:
print("Operación no reconocida.")
Verificador de año bisiesto
# Un año es bisiesto si es divisible por 4, excepto si es divisible por 100 pero no por 400
anio = int(input("Introduce un año: "))
if (anio % 4 == 0 and anio % 100 != 0) or (anio % 400 == 0):
print(f"{anio} es un año bisiesto.")
else:
print(f"{anio} no es un año bisiesto.")
Resumen
Las estructuras condicionales if
, elif
y else
son fundamentales en Python para tomar decisiones en nuestros programas. Nos permiten ejecutar diferentes bloques de código según se cumplan o no ciertas condiciones, lo que hace que nuestros programas sean mucho más versátiles y útiles. Estas estructuras, combinadas con operadores lógicos como and
, or
y not
, nos ofrecen una gran flexibilidad para expresar lógica compleja. En los próximos artículos, exploraremos cómo utilizar bucles para repetir acciones, lo que nos permitirá crear programas aún más potentes que pueden procesar grandes cantidades de datos de manera eficiente.