En este tutorial aprenderá sobre el u operador en Python. La «o» es uno de los operadores lógicos utilizados en el álgebra booleana desarrollado por George Boole. Hay un total de tres operadores lógicos presentes en Python. Estoy:
- Y
- o
- No
Estos operadores lógicos vinculan expresiones booleanas individuales para crear expresiones booleanas compuestas.
Operador O en Python
El operador o combina expresiones booleanas individuales para formar una sola expresión booleana compuesta, y la expresión booleana compuesta resultante es verdadera si al menos una subexpresión es verdadera.
Sintaxis de u operador
Expression1 or Expression2 or Expression3…..
Examinemos varios casos/contextos en los que se usa el operador o.
Usar o con expresiones booleanas
Las expresiones booleanas son expresiones que dan como resultado un valor booleano, que es verdadero o falso. Como se discutió anteriormente, si al menos una subexpresión en la expresión compuesta es True, el valor resultante de la expresión compuesta también es True.Si ninguna de las expresiones es True, el resultado de la expresión compuesta formada usando o es False.
A continuación se muestra cómo funciona el operador or con expresiones booleanas
Verdadero | Verdadero | Verdadero |
Verdadero | Falso | Verdadero |
Falso | Verdadero | Verdadero |
Falso | Falso | Falso |
A continuación se muestra un programa de ejemplo en el que se utiliza el operador o con expresiones booleanas.
Código
print((1>2) or (1<2)) print(1==2 or 1==0)
Producción
Verdadero
Falso
Usando o con artículos comunes
Cuando el operador o se usa entre objetos, el operador o devuelve un objeto verdadero/falso, no el valor booleano. Devuelve el primer objeto evaluado como Verdadero o el último objeto. A continuación se muestran algunos artículos falsos:
- Secuencias / colecciones vacías – [](), {}, configurando(), »
- Ninguno, Falso
- Cero – 0, 0.0, 0/1
Veamos algunos ejemplos para tener más espacio entre los objetos True y False.
Código
# case-1 print(1 or 2) # case-2 print(0 or 1.2) # case-3 print([] or 0) # case-4 print(0.0 or 5 or [1,2])
Producción
1
1.2
0
5
Explicación:
Caso 1: Aquí, ambos valores, 1 y 2, son valores verdaderos, por lo que devuelve el primer valor verdadero, que es 1
Caso 2: En este caso, el primer valor del objeto 0 es Falso. El segundo objeto, 1.2, es verdadero y se devuelve el valor 1.2.
Caso 3: Aquí, ambos valores [] («Lista vacía»), 0 son valores falsos. Por lo tanto, el resultado de o el operador tra []0 da como resultado el último objeto, que es 0
Caso 4: La operación o entre varios objetos produce el primer objeto, que se evalúa como verdadero, o el último objeto. En este caso, 5 es el primer objeto verdadero entre 0, 5, [1,2]. Luego devuelve 5 como resultado.
La operación del operador o con 2 objetos se muestra a continuación.
objeto siniestro | Objeto derecho | Objeto izquierdo u Objeto derecho |
obj1 | obj2 | obj1 si es Verdadero si no obj2 |
Usar o entre expresiones booleanas y objetos
La expresión booleana y los objetos se pueden combinar en una expresión compuesta mediante un operador y devuelve el primer operando verdadero o el último. El valor devuelto puede ser Verdadero, Falso u Objeto.
A continuación se muestra cómo funciona el operador o entre expresiones booleanas y objetos.
Resultado de la expresión booleana | resultado del objeto | Objeto o expresión booleana |
Verdadero | Verdadero | Verdadero |
Verdadero | Falso | Falso |
Verdadero | Verdadero | Objeto |
Falso | Falso | Objeto |
Veamos algunos ejemplos para comprender mejor el tema.
Código:
# case-1 print(10>1 or 1) # case-2 print(1 or 1<12) # case-3 print({} or 100>1000) # case-4 print(1==2 or 0.0) # case-5 print(0.0 or 1==1 or [1,2])
Producción:
Verdadero
1
Falso
0.0
Verdadero
Explicación:
Caso 1: aquí, la primera expresión 10> 1 da como resultado Verdadero y la expresión compuesta devuelve Verdadero.
Caso 2: En este caso, la primera expresión es 1 (objeto), que es un valor verdadero, por lo que independientemente de la segunda expresión, devuelve el primer valor verdadero, 1 como resultado.
Caso 3: aquí, la primera expresión {} es un objeto vacío con un valor de False y la segunda expresión 100> 1000 da como resultado True, por lo que devuelve True como resultado.
Caso 4: en este caso, ambas expresiones son valores Falso. Luego devuelve el último valor de la expresión, que es el objeto 0.0
Caso 5: aquí, la primera expresión verdadera es 1 == 1, lo que da como resultado un valor de Verdadero. Luego devuelve un valor de Verdadero.
Estos son los diversos casos/contextos en los que se utiliza el operador o.
Nota: – Cuando Python Interpreter trabaja con expresiones combinadas con un operador lógico, el intérprete deja de evaluar expresiones individuales después de encontrar el primer operando/expresión verdadero. Esto se llama evaluación corta/perezosa.
Manejo de errores
El operador or también se puede utilizar para evitar algunos errores durante la codificación. Uno de esos casos es ZeroDivisionError.
El código que genera un error al intentar dividir un número por cero es el siguiente.
# divide function def divide(numerator,denominator): return numerator/denominator print(divide(24/0))
Producción:
ZeroDivisionError Traceback (most recent call last) <ipython-input-1-07ea2d9e78b7> in <module> 2 return numerator/denominator 3 ----> 4 print(divide(24/0)) ZeroDivisionError: division by zero
Este error se puede corregir utilizando el operador o. El siguiente es el código corregido por el error.
def divide(numerator,denominator): return denominator==0 or numerator/denominator print(divide(24/0))
Producción
Verdadero
Explicación: El operador o se usa entre dos expresiones en la declaración de retorno. La primera expresión, denominador == 0, es válida según la entrada. Entonces la segunda declaración del numerador/denominador no se ejecutará y se evitará ZeroDivisionError.
Múltiples expresiones en la función Lambda
La palabra clave lambda define una función anónima simple con una sola expresión. Pero usando el operador o, puede definir múltiples expresiones en una sola función lambda del siguiente código.
# lambda function website_Name = lambda string1, string2 : print(string1) or print(string2) website_Name('CodeITBro','Programming Tutorials site')
Producción
Código ITBro
Sitio de tutoriales de programación