Kurzschlussauswertung in Python

Preet Sanghavi 21 Juni 2023
  1. Logische Operatoren in Python
  2. Was ist Kurzschluss
  3. Kurzschluss mit dem Operator AND in Python
  4. Kurzschluss mit dem Operator OR in Python
Kurzschlussauswertung 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 Operator and 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.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub