Python Programming

Evaluación de cortocircuito en Python

Spread the love

Tabla de Contenido

Operadores Lógicos en Python

Los operadores lógicos de Python, and y or, son fundamentales para controlar el flujo del programa y evaluar condiciones. Operan sobre valores booleanos (True/False), pero la flexibilidad de Python extiende su uso a otros tipos de datos a través de los conceptos de «verdadero» y «falso». Las secuencias vacías (listas, tuplas, cadenas), cero, None y False se consideran falsos; todo lo demás es verdadero.

¿Qué es el Cortocircuito?

El cortocircuito, también conocido como evaluación de cortocircuito, es una técnica de optimización donde la evaluación de una expresión lógica se detiene tan pronto como se puede determinar el resultado final. Esto evita cálculos innecesarios y posibles errores.

Cortocircuito con el operador and

Con el operador and, si el operando izquierdo se evalúa como False, toda la expresión es False independientemente del valor del operando derecho. Por lo tanto, el operando derecho no se evalúa. Esto es crucial para evitar errores, particularmente cuando el operando derecho implica operaciones potencialmente problemáticas.


x = 10
y = 0

result = (x > 5) and (y / x > 0)  # Posible ZeroDivisionError evitado

print(result)  # Salida: False

En este ejemplo, (x > 5) es True, pero el cortocircuito evita la evaluación de (y / x > 0), lo que causaría un ZeroDivisionError.

Cortocircuito con el operador or

De manera similar, con el operador or, si el operando izquierdo se evalúa como True, toda la expresión es True, independientemente del valor del operando derecho. Por lo tanto, se omite el operando derecho.


x = 0
y = 10
result = (x == 0) or (y / x > 0) # Posible ZeroDivisionError evitado

print(result)  # Salida: True

Aquí, (x == 0) es True, por lo que (y / x > 0) nunca se evalúa, evitando un ZeroDivisionError.

Aplicaciones Prácticas y Consideraciones

El cortocircuito es valioso para:

  • Prevención de Errores: Evitar excepciones como ZeroDivisionError, IndexError o AttributeError evaluando condicionalmente expresiones potencialmente problemáticas.
  • Optimización del Rendimiento: Reducir el tiempo de cálculo omitiendo evaluaciones innecesarias, especialmente en expresiones complejas o computacionalmente costosas.
  • Ejecución Condicional: Controlar elegantemente la ejecución de bloques de código en función de la veracidad de las condiciones precedentes.

Es importante tener en cuenta el orden de las operaciones y los posibles efectos secundarios. Si el operando derecho tiene efectos secundarios (por ejemplo, modificar una variable, imprimir una salida), esos efectos secundarios pueden no ocurrir si el cortocircuito impide su evaluación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *