Evaluación por cortocircuito

⚡ Evaluación por cortocircuito

En la lección anterior vimos cómo usar los operadores lógicos
and, or y not para combinar condiciones.

Ahora aprenderemos un concepto importante:
la evaluación por cortocircuito (short-circuit evaluation).

💡 ¿Qué significa “cortocircuito”?

Cuando Python evalúa una expresión lógica con varios términos,
no siempre evalúa todas las partes.

Detiene la evaluación tan pronto como puede determinar el resultado final.

Esto hace que el programa sea más eficiente ⚙️

🔍 Ejemplo con and

Recordemos esta condición:

ingreso_alto = True
buen_credito = True
estudiante = False

if ingreso_alto and buen_credito and not estudiante:
    print("Elegible")
else:
    print("No elegible")

⬇️ Salida:

Elegible

Todas las condiciones son verdaderas, por eso el resultado es True.

🚫 Cuando una condición es falsa

ingreso_alto = False
buen_credito = True

if ingreso_alto and buen_credito:
    print("Elegible")
else:
    print("No elegible")

⬇️ Salida:

No elegible

💬 Python detiene la evaluación al ver que ingreso_alto es False, porque en un and, si una condición es falsa, todo es falso.

⚙️ Así funciona internamente

  1. Python evalúa la primera condición.
  2. Si es False, no necesita mirar las demás → resultado final: False.
  3. Solo si la primera es True, continúa con la siguiente.

📍 Esto se llama evaluación por cortocircuito.

🔁 Ejemplo con or

Con el operador or, el comportamiento es opuesto.

ingreso_alto = False
buen_credito = True

if ingreso_alto or buen_credito:
    print("Elegible")
else:
    print("No elegible")

⬇️ Salida:

Elegible

💡 En este caso, Python se detiene cuando encuentra el primer True, porque ya sabe que el resultado de toda la expresión será True.

🧩 Resumen visual

Operador Se detiene cuando… Resultado final
and encuentra un False False
or encuentra un True True

Conclusión

Los operadores lógicos en Python son de cortocircuito: esto significa que no evalúan más de lo necesario.

✅ Hace tu código más rápido y eficiente ⚡ Pero también puede afectar el orden de ejecución si hay efectos secundarios (por ejemplo, llamadas a funciones).

Conocer este comportamiento te ayudará a escribir condiciones seguras y optimizadas.