En Python, la palabra clave or es un operador lógico que se utiliza para evaluar dos expresiones y devuelve True si al menos una es verdadera.
Este operador se emplea para combinar condiciones lógicas y es fundamental para la toma de decisiones en el flujo de un programa.
Sintaxis
La sintaxis para utilizar or es la siguiente:
expr1 or expr2
Donde expr1 y expr2 son las expresiones lógicas que deseas evaluar. Si alguna de ellas es verdadera, el resultado será True. Si ambas son falsas, el resultado es False.
El operador or aplica lo que se conoce como evaluación diferida (short-circuiting): si expr1 es verdadera, entonces Python no evalúa expr2.
Además, or devuelve el primer operando con valor de verdad verdadero (truthy). Si ninguno es verdadero, devuelve el último operando. Por lo tanto, no siempre devuelve True o False.
La tabla de verdad del operador cuando lo usamos con expresiones lógicas se resume a continuación:
expression_1 (bool) |
expression_2 (bool) |
expression_1 or expression_2 |
|---|---|---|
True |
True |
True |
True |
False |
True |
False |
False |
False |
False |
True |
True |
Ejemplos prácticos
Aquí tienes algunos ejemplos prácticos que muestran cómo se usa el operador or:
>>> 5 > 3 or 2 < 1
True
>>> 5 == 6 or 4 != 4
False
En estos ejemplos, el operador or evalúa las expresiones a la izquierda y a la derecha. Si alguna de las expresiones es verdadera, el resultado de toda la expresión es True. En el caso de que ambas expresiones sean falsas, el resultado es False.
Si usamos or con objetos concretos o con expresiones que retornan objetos distintos de True o False, tenemos el comportamiento siguiente:
>>> "" or "default"
'default'
>>> 0 or 5
5
>>> 5 or 0
5
>>> None or []
[]
En estos ejemplos, el operador devuelve objetos concretos en lugar de los valores True o False. Esto se debe a a todo objeto en Python tiene un valor de verdad intrínseco. Estos son los objectos considerados falsos:
- constantes definidas para tener valor falso:
NoneyFalse.- cero en cualquiera de los diferentes tipos numéricos:
0,0.0,0j,Decimal(0),Fraction(0, 1)- cualquier colección o secuencia vacía:
'',(),[],{},set(),range(0)(Fuente)
El resto de los objetos son considerados verdaderos a menos que su clase defina un método .__bool__() que devuelva False o un método .__len__() que devuelva zero.
Uso de or
Los casos de uso más comunes de la palabra clave or incluyen los siguientes:
- Evaluar múltiples condiciones en declaraciones de control de flujo como
if,while, oassert. - Simplificar la lógica condicional al permitir que al menos una condición sea verdadera para que la expresión completa sea verdadera.
- Utilizar en expresiones booleanas para determinar el flujo de un programa.
Resumiendo
La palabra clave or es un operador lógico esencial en Python y permite evaluar múltiples condiciones y devolver True si al menos una es verdadera o False si ambas son falsas.
Conocer y utilizar or te ayuda a escribir código más eficiente y legible al simplificar la lógica condicional en tus programas.