Kurzschlussauswertung in Python
- Logische Operatoren in Python
- Was ist Kurzschluss
-
Kurzschluss mit dem Operator
AND
in Python -
Kurzschluss mit dem Operator
OR
in Python
In diesem Artikel geht es darum, das Kurzschlussverhalten in Python mithilfe logischer Operatoren zu zeigen.
Logische Operatoren in Python
der ODER
-Operator
OR
: Beide Operanden werden mit dem Python-Operator or
ausgewertet. Der or
-Operator gibt True
zurück, wenn einer der Operanden True
ist.
Der Operator oder
gibt jedoch nur dann False
zurück, wenn alle angegebenen Ausdrücke oder Operanden False
zurückgeben.
Logiktabelle des ODER
-Operators:
Erster Wert | Zweiter Wert | Ausgang |
---|---|---|
WAHR | WAHR | WAHR |
WAHR | FALSCH | WAHR |
FALSCH | WAHR | WAHR |
FALSCH | FALSCH | FALSCH |
Darstellung des obigen OR
-Operators in der Python-Konsole:
>>> True or True
True
>>> True or False
True
>>> False or True
True
>>> False or False
False
Python ermöglicht es uns auch, mehrere Ausdrücke mit dem Operator OR
zu vergleichen.
>>> (5 < 10) or (8 < 5)
True
>>> (5 < 10) or (8 < 5) or (2 == 2) or (9 != 8)
True
der UND
-Operator
AND
: Bei Verwendung des Python-Operators and
werden beide Operanden ausgewertet, und wenn ein bestimmter Ausdruck oder Operator nicht wahr ist, wird False
zurückgegeben. Der and
-Operator gibt nur True
zurück, wenn sowohl der gegebene Ausdruck als auch die Operanden True
sind.
Logiktabelle des UND
-Operators:
Erster Wert | Zweiter Wert | Ausgang |
---|---|---|
WAHR | WAHR | WAHR |
WAHR | FALSCH | FALSCH |
FALSCH | WAHR | FALSCH |
FALSCH | FALSCH | FALSCH |
Darstellung des obigen AND
-Operators in der Python-Konsole:
>>> True and True
True
>>> True and False
False
>>> False and True
False
>>> False and False
False
Vergleich mehrerer Ausdrücke mit dem Operator AND
.
>>> (5 < 10) and (8 < 5)
False
>>> (5 < 10) and (8 < 5) and (2 == 2) and (9 != 8)
False
>>> (10 == 10) and (8 != 5) and (2 == 2) and (9 != 8)
True
Was ist Kurzschluss
Kurzschließen bezieht sich auf die Beendigung einer booleschen Operation, wenn der Wahrheitswert des Ausdrucks bereits feststeht. Der Python-Interpreter wertet den Ausdruck von links nach rechts aus.
Pythons zahlreiche boolesche Operatoren und Funktionen erlauben Kurzschlüsse.
def exp(n):
print("Hello")
return n
Um zu sehen, wie Kurzschlüsse stattfinden, verwenden wir die obige Funktion als einen der Operanden oder Ausdrücke, die das Wort "Hallo"
ausgeben, wenn der Python-Interpreter sie ausführt.
Kurzschluss mit dem Operator AND
in Python
Mit dem und
-Operator:
>>> True and exp(1)
Hello
1
Der Python-Interpreter wertet den Code im obigen Code von links nach rechts aus. Gemäss der Logiktabelle des AND
-Operators muss der Ausdruck True
sein, um einen True
-booleschen Wert zu erhalten.
Der Python-Interpreter wertet unsere Funktion nur aus, weil der erste Wert auf True
gesetzt ist.
Was, wenn wir den Anfangswert auf False
setzen? Beachten Sie den folgenden Code:
>>> False and exp(1)
False
Da der Initialwert auf False
gesetzt ist, ignoriert der Python-Interpreter letzteren Ausdruck und spart so Ausführungszeit.
Austausch des Ausdrucks:
>>> exp(1) and True
Hello
True
>>> exp(1) and False
Hello
False
In diesen Codes ist unser anfänglicher Ausdruck die Funktion, die wir zuvor erstellt haben. Der Python-Interpreter wertet zuerst die angegebene Funktion aus, was zur Ausgabe "Hello"
führt.
Hinweis: Die von uns erstellte Funktion erzeugt keinen Fehler oder
falschen
booleschen Wert. Daher muss der Python-Interpreter immer den letztgenannten Ausdruck auswerten, wenn ersterer die gegebene Funktion ist, wenn der Operatorand
verwendet wird.
Kurzschluss mit dem Operator OR
in Python
Mit dem oder
-Operator:
>>> True or exp(1)
True
Auswertung des Codes von links nach rechts. Wenn Sie den Anfangswert auf True
setzen, kann der Python-Interpreter die Ausführung des letzteren Ausdrucks ignorieren, der die angegebene Funktion ist.
Entsprechend der gegebenen Logiktabelle des ODER
-Operators ist der Ausgang also True
.
>>> False or exp(1)
Hello
1
Der Python-Interpreter führt die Funktion im obigen Code aus, da der vorherige Wert auf False
gesetzt ist.
Austausch des Ausdrucks:
>>> exp(1) or True
Hello
1
>>> exp(1) or False
Hello
1
Wenn wir die Ausdrücke austauschen, wird unsere erstellte Funktion jedes Mal ausgeführt, da sie der erste Operand ist, den der Python-Interpreter auswertet.
Betrachtet man eines der obigen Codebeispiele, gibt der or
-Operator einen True
booleschen Wert zurück.
Wenn wir jedoch mit dem Operator oder
einen falschen
booleschen Wert erhalten, können wir die erstellte Funktion ein wenig optimieren.
def exp():
print("Hello")
return False
>>> exp()
Hello
False
Nach den obigen Änderungen wird die Funktion exp()
bei jedem Aufruf nur den booleschen Wert False
zurückgeben, nachdem Hallo
an die Konsole ausgegeben wurde.
>>> exp() or True
Hello
True
>>> exp() or False
Hello
False
Da die Funktion bei jedem Aufruf nur einen falschen
booleschen Wert zurückliefert, muss der Python-Interpreter letzteren Ausdruck bzw. Operanden auswerten.