Suche…


und

Bewertet das zweite Argument genau dann, wenn beide Argumente wahr sind. Ansonsten wird das erste Falsey-Argument ausgewertet.

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)

Die 1 ‚s in dem obigen Beispiel kann an jeden truthy Wert geändert werden, und die 0 ‘ s kann auf jeden Falsey Wert geändert werden.

oder

Bewertet das erste wahrheitsgemäße Argument, wenn eines der Argumente wahr ist Wenn beide Argumente falsch sind, wird das zweite Argument bewertet.

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)

Die 1 ‚s in dem obigen Beispiel kann an jeden truthy Wert geändert werden, und die 0 ‘ s kann auf jeden Falsey Wert geändert werden.

nicht

Es gibt das Gegenteil der folgenden Anweisung zurück:

x = True
y = not x # y = False

x = False
y = not x # y = True

Kurzschlussauswertung

Python wertet boolesche Ausdrücke minimal aus .

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

"und" und "oder" geben nicht garantiert einen Boolean zurück

Wenn Sie or , wird entweder der erste Wert im Ausdruck zurückgegeben, wenn er wahr ist, andernfalls wird der zweite Wert blind angezeigt. Dh or entspricht:

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

Bei and wird der erste Wert zurückgegeben, wenn er falsch ist, ansonsten wird der letzte Wert zurückgegeben:

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

Ein einfaches Beispiel

In Python können Sie ein einzelnes Element mit zwei binären Operatoren vergleichen - einen auf beiden Seiten:

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

In vielen (den meisten?) Programmiersprachen wird dies im Gegensatz zur regulären Mathematik bewertet: (3.14 < x) < 3.142 , aber in Python wird es wie 3.14 < x and x < 3.142 , genau wie die meisten Nichtprogrammierer würde erwarten.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow