Buscar..


y

Evalúa el segundo argumento si y solo si ambos argumentos son veraces. De lo contrario se evalúa al primer argumento falsey.

x = True
y = True
z = x and y # z = True

x = True
y = False
z = x and y # z = False

x = False
y = True
z = x and y # z = False

x = False
y = False
z = x and y # z = False

x = 1
y = 1
z = x and y # z = y, so z = 1, see `and` and `or` are not guaranteed to be a boolean

x = 0
y = 1
z = x and y # z = x, so z = 0 (see above)

x = 1
y = 0
z = x and y # z = y, so z = 0 (see above)

x = 0
y = 0
z = x and y # z = x, so z = 0 (see above)

Los 1 en el ejemplo anterior se pueden cambiar a cualquier valor verdadero, y los 0 se pueden cambiar a cualquier valor falso.

o

Evalúa el primer argumento de verdad si alguno de los argumentos es verdadero. Si ambos argumentos son falsey, evalúa el segundo argumento.

x = True
y = True
z = x or y # z = True

x = True
y = False
z = x or y # z = True

x = False
y = True
z = x or y # z = True

x = False
y = False
z = x or y # z = False

x = 1
y = 1
z = x or y # z = x, so z = 1, see `and` and `or` are not guaranteed to be a boolean

x = 1
y = 0
z = x or y # z = x, so z = 1 (see above)

x = 0
y = 1
z = x or y # z = y, so z = 1 (see above)

x = 0
y = 0
z = x or y # z = y, so z = 0 (see above)

Los 1 en el ejemplo anterior se pueden cambiar a cualquier valor verdadero, y los 0 se pueden cambiar a cualquier valor falso.

no

Devuelve lo contrario de la siguiente declaración:

x = True
y = not x # y = False

x = False
y = not x # y = True

Evaluación de cortocircuito

Python evalúa mínimamente las expresiones booleanas.

>>> def true_func():
...     print("true_func()")
...     return True
... 
>>> def false_func():
...     print("false_func()")
...     return False
... 
>>> true_func() or false_func()
true_func()
True
>>> false_func() or true_func()
false_func()
true_func()
True
>>> true_func() and false_func()
true_func()
false_func()
False
>>> false_func() and false_func()
false_func()
False

`and` y` or` no están garantizados para devolver un valor booleano

Cuando usa or , devolverá el primer valor en la expresión si es verdadero, de lo contrario, devolverá ciegamente el segundo valor. Es decir or es equivalente a:

def or_(a, b):
    if a:
        return a
    else:
        return b

Para and , devolverá su primer valor si es falso, de lo contrario, devolverá el último valor:

def and_(a, b):
    if not a:
        return a
    else:
        return b

Un simple ejemplo

En Python puedes comparar un solo elemento utilizando dos operadores binarios, uno en cada lado:

if 3.14 < x < 3.142:
    print("x is near pi")

En muchos (¿la mayoría?) Lenguajes de programación, esto se evaluaría de forma contraria a las matemáticas regulares: (3.14 < x) < 3.142 , pero en Python se trata como 3.14 < x and x < 3.142 , como la mayoría de los no programadores Esperaría.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow