Condicionales en Python: guía completa
Los condicionales son un elemento fundamental en la programación. Permiten tomar decisiones en el código y ejecutar acciones específicas solo cuando se cumplen ciertas condiciones. Python ofrece a los desarrolladores un potente conjunto de herramientas para trabajar con la lógica condicional.
Tipos principales de condicionales
En el lenguaje de programación Python, están disponibles los siguientes tipos de condicionales:
- Estructuras clásicas if, elif y else
- Operadores lógicos and, or, not
- Operadores de comparación ==, !=, <, >, is, in
- Coincidencia estructural match case (a partir de la versión 3.10)
Cada una de estas herramientas tiene sus propias características de uso y es adecuada para resolver diferentes problemas de programación.
Estructuras condicionales básicas
Estructura if, elif, else
La base de la lógica condicional en Python es la estructura if-elif-else:
x = 10
if x > 0:
print("Positivo")
elif x == 0:
print("Cero")
else:
print("Negativo")
Python utiliza sangrías para definir bloques de código en lugar de llaves. El uso correcto de las sangrías es fundamental, ya que forman parte de la sintaxis del lenguaje.
Particularidades de la sintaxis
Las sangrías en Python deben ser consistentes en todo el código. Se recomienda usar 4 espacios para cada nivel de anidamiento. Mezclar espacios y tabulaciones puede provocar errores de ejecución.
Operadores de comparación en Python
Python admite una amplia gama de operadores de comparación que permiten crear condiciones complejas:
Comparaciones aritméticas
==verifica la igualdad de valores!=verifica la desigualdad<y>comparan si es menor o mayor, respectivamente<=y>=incluyen la igualdad en la comparación
Operadores especiales
El operador is verifica la identidad de los objetos en memoria, no la igualdad de valores. El operador in verifica si un elemento pertenece a una colección.
s1 = "hola"
s2 = "hola"
print(s1 == s2) # True - igualdad de valores
print(s1 is s2) # True para cadenas internadas
Comparación de cadenas y particularidades
Python internaliza automáticamente las cadenas cortas, lo que significa que cadenas iguales pueden hacer referencia al mismo objeto en memoria. Esto afecta el resultado de la comparación con is.
Operadores lógicos: and, or, not
Los operadores lógicos permiten combinar varias condiciones en una sola expresión:
a = 5
b = 10
if a > 0 and b > 0:
print("Ambos son positivos")
Principios de funcionamiento de los operadores lógicos
anddevuelve True solo cuando ambas condiciones son verdaderasordevuelve True si al menos una condición es verdaderanotinvierte el valor lógico
Cortocircuito
Python utiliza el principio de cortocircuito al evaluar expresiones lógicas. Esto significa que si el resultado ya está determinado por el primer operando, el segundo no se evalúa.
Estructuras condicionales anidadas
Los condicionales se pueden anidar unos dentro de otros para crear lógica más compleja:
x = 15
if x > 0:
if x < 10:
print("Menor que 10")
else:
print("De 10 en adelante")
Recomendaciones de uso
El anidamiento excesivo puede perjudicar la legibilidad del código. Se recomienda limitarse a 3 o 4 niveles de anidamiento y, si es necesario, extraer la lógica compleja en funciones separadas.
match case en Python 3.10+
Introducción a la coincidencia estructural
Python 3.10 introdujo la declaración match case, que permite realizar coincidencias de patrones de manera más expresiva y legible que una cadena de if-elif. Es especialmente útil para trabajar con estructuras de datos complejas.
def procesar_dato(dato):
match dato:
case 0:
print("Cero")
case [x, y]:
print(f"Lista de dos elementos: {x}, {y}")
case {"nombre": n, "edad": e}:
print(f"Persona: {n}, {e} años")
case _:
print("Dato desconocido")
El patrón _ (guion bajo) actúa como comodín y captura cualquier valor no coincidente, funcionando de manera similar a un else.