Python Language
Booleaanse operatoren
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.