Introducción a las Sentencias Condicionales en Python
En el desarrollo de software, es fundamental que los programas puedan tomar decisiones y ejecutar diferentes bloques de código basándose en el cumplimiento o incumplimiento de ciertas condiciones. Python facilita este control del flujo de ejecución mediante las sentencias condicionales if, elif (una contracción de "else if") y else. Estas estructuras permiten que un programa adapte su comportamiento dinámicamente.
Estructura y Sintaxis de if...elif...else
La forma general para implementar lógica condicional encadenada en Python es la siguiente:
if primera_condicion:
# Bloque de código que se ejecuta si 'primera_condicion' es Verdadera.
elif segunda_condicion:
# Bloque de código que se ejecuta si 'primera_condicion' es Falsa,
# y 'segunda_condicion' es Verdadera.
elif otra_condicion:
# Bloque de código que se ejecuta si las condiciones anteriores son Falsas,
# y 'otra_condicion' es Verdadera.
else:
# Bloque de código que se ejecuta si ninguna de las condiciones anteriores
# (if o elif) resultó ser Verdadera.
Es crucial recordar que las cláusulas elif y else son opcionales. Se puede utilizar una sentencia if de forma independiente, o combinada con un else (if-else), o con múltiples elif (if-elif), o la estructura comlpeta if-elif-else. La indentación consistente (típicamente cuatro espacios) es obligatoria en Python para delimitar los bloques de código asociados a cada condición.
Mecanismo de Ejecución
El intérprete de Python evalúa las condiciones de una estructura if...elif...else siguiendo un orden estricto:
- Se comienza evaluando la expresión lógica de la primera sentencia
if. - Si esta expresión resulta ser
True, se ejecuta el bloque de código directamente debajo deif, y el resto de la estructura condicional (incluyendo cualquierelifyelse) es completamente ignorado. - Si la expresión de
ifesFalse, se procede a evaluar la condición de la primera sentenciaelif. - Si la condición del
elifesTrue, se ejecuta su bloque de código correspondiente, y las sentencias subsiguientes se omiten. - Este proceso de evaluación secuencial continúa con cada
elifen el orden en que aparecen. - Si todas las condiciones previas (del
ify de todos loselif) se evalúan comoFalse, y existe una cláusulaelse, entonces el bloque de código bajoelsees el que se ejecuta.
Es importante destacar que, en una única cadena if...elif...else, solo uno de los bloques de código asociados se ejecutará.
Ejemplo Práctico: Clasificación de Días por Número
A continuación, se presenta un programa que solicita al usuario un número del 1 al 7. El programa determinará el día de la semana correspondiente. Si la entrada no es un número válido o está fuera del rango especificado, se notificará al usuario.
# Solicitar al usuario que ingrese un número para identificar el día de la semana
entrada_numero = input("Introduce un número entero del 1 al 7 para ver el día: ")
# Intentar convertir la entrada a un entero, manejando posibles errores de formato
try:
valor_numerico_dia = int(entrada_numero)
except ValueError:
print("Entrada inválida. Por favor, asegúrate de introducir solo números.")
else:
# Utilizar la estructura if-elif-else para clasificar el número y mostrar el día
if valor_numerico_dia == 1:
print("El número 1 corresponde al Lunes.")
elif valor_numerico_dia == 2:
print("El número 2 corresponde al Martes.")
elif valor_numerico_dia == 3:
print("El número 3 corresponde al Miércoles.")
elif valor_numerico_dia == 4:
print("El número 4 corresponde al Jueves.")
elif valor_numerico_dia == 5:
print("El número 5 corresponde al Viernes.")
elif valor_numerico_dia == 6:
print("El número 6 corresponde al Sábado.")
elif valor_numerico_dia == 7:
print("El número 7 corresponde al Domingo.")
else:
print("Número fuera del rango permitido. Introduce un valor entre 1 y 7.")
# Ejemplos de ejecución:
#
# >> Introduce un número entero del 1 al 7 para ver el día: 3
# El número 3 corresponde al Miércoles.
#
# >> Introduce un número entero del 1 al 7 para ver el día: 8
# Número fuera del rango permitido. Introduce un valor entre 1 y 7.
#
# >> Introduce un número entero del 1 al 7 para ver el día: Hola
# Entrada inválida. Por favor, asegúrate de introducir solo números.