Zoeken…


en

Evalueert het tweede argument als en alleen als beide argumenten waarheidsgetrouw zijn. Anders evalueert het eerste falsey-argument.

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)

De 1 'is in het bovenstaande voorbeeld kan worden gewijzigd in een truthy waarde, en 0 is kan worden gewijzigd in een falsey waarde.

of

Evalueert naar het eerste waarheidsargument of een van de argumenten waarheidsgetrouw is. Als beide argumenten falsey zijn, wordt het tweede argument geëvalueerd.

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)

De 1 'is in het bovenstaande voorbeeld kan worden gewijzigd in een truthy waarde, en 0 is kan worden gewijzigd in een falsey waarde.

niet

Het retourneert het tegenovergestelde van de volgende verklaring:

x = True
y = not x # y = False

x = False
y = not x # y = True

Kortsluiting evaluatie

Python evalueert minimaal Booleaanse uitdrukkingen.

>>> 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

`en` en` of` kunnen niet gegarandeerd een Boolean retourneren

Wanneer u or , retourneert het de eerste waarde in de uitdrukking als het waar is, anders retourneert het blind de tweede waarde. Dat wil zeggen or staat gelijk aan:

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

Voor and , het zal zijn eerste waarde teruggeven als het onwaar is, anders retourneert het de laatste waarde:

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

Een eenvoudig voorbeeld

In Python kun je een enkel element vergelijken met behulp van twee binaire operatoren - één aan elke kant:

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

In veel (meeste?) Programmeertalen zou dit op een manier worden geëvalueerd die in strijd is met reguliere wiskunde: (3.14 < x) < 3.142 , maar in Python wordt het behandeld als 3.14 < x and x < 3.142 , net als de meeste niet-programmeurs zou verwachten.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow