Kurzschlussauswertung in Python
- Logische Operatoren in Python
- Was ist Kurzschluss
-
Kurzschluss mit dem Operator
ANDin Python -
Kurzschluss mit dem Operator
ORin 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
falschenbooleschen Wert. Daher muss der Python-Interpreter immer den letztgenannten Ausdruck auswerten, wenn ersterer die gegebene Funktion ist, wenn der Operatorandverwendet 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.
