Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in die Verwendung des Python-Ternärrechners und der Kurzschlusslogikmethode

Einführung in die Verwendung des Python-Ternärrechners und der Kurzschlusslogikmethode

高洛峰
高洛峰Original
2017-03-20 10:16:041556Durchsuche

Als ich mir heute den Code anderer Leute ansah, hatte ich das Gefühl, dass es eine Falle war, auf die ich leicht treten konnte, und schrieb ein Memo.

Kurzschlusslogik

Bei der Ausführung logischer Operationen in Python wird standardmäßig eine Art Operationsregel namens Kurzschlusslogik verwendet. Der Name ist sehr anschaulich, man kann ihn direkt erkennen Wenn Sie sich den Code

print True and 1
# 1
print True or 1
# True
print False and 1
# False
print False or 1
# 1

unten ansehen, wird zwar 1 Wille als boolescher Wert berechnet, das Berechnungsergebnis des gesamten Ausdrucks ist jedoch nicht unbedingt ein boolescher Wert, sondern variiert je nach Die unterschiedlichen Ergebnisse der oben genannten Ausdrücke sind Kurzschlusslogik. Sobald Python feststellen kann, ob der gesamte Ausdruck wahr oder falsch ist, werden keine weiteren Berechnungen durchgeführt, das heißt, die Logik ist kurz -Circuited und nachfolgende Ausdrücke werden ignoriert.

Zum Beispiel ist True or 1 das Ergebnis True, denn egal, welcher Wert auf or folgt, das Ergebnis der gesamten Formel muss True sein, also wenn Python sieht True und or, es ignoriert die folgenden 1, 1 Es wird kurzgeschlossen und True wird zurückgegeben; das Gleiche gilt für False and 1 und dann False, egal Was folgt, muss das Ergebnis der gesamten Formel and sein, also ist 1 kurzgeschlossen, Return False.False

Entsprechend liegt der Grund, warum

1 zurückgibt, darin, dass False or 1 und False Das Ergebnis der Formel kann nicht bestimmt werden. Ob die gesamte Formel wahr oder falsch ist, wird durch den folgenden Wert bestimmt. Daher muss Python den gesamten Ausdruck lesen und gibt daher 1 zurück.ororDanach Um zu verstehen, was Kurzschlusslogik ist, werfen wir einen Blick auf den

Ternäroperator

Ternäroperator

Ternäroperator, auch

Ternäroperator

-Operator genannt . Studenten, die mit Java vertraut sind, wissen möglicherweise, dass die Form für diesen Ausdruck wie folgt lautet: Wenn die Bedingung ist, ist das Ergebnis des Ausdrucks b?x:y, wenn b , dann ist das Ergebnis des Ausdrucks True. Dies ist eine sehr praktische Schreibweise, viel einfacher als die xifb-Anweisung. Es gab jedoch keinen ähnlichen ternären Operator So wie es in den frühen Tagen von Python geschrieben wurde, gab es eine Möglichkeit, Kurzschlusslogik zu verwenden, wobei False und y verwendet wurden, um das Schreiben des ternären Operators zu simulieren. Schauen wir uns den folgenden Code an:

Dieser Code verwendet Kurzschlusslogik, um den ternären Operator zu simulieren, wenn

and ist, wenn or

zugewiesen ist und wenn
A = X and 'table' or False

zugewiesen ist , X wird TrueA zugewiesen; es scheint auf den ersten Blick gut zu sein, aber diese Schreibweise birgt eine Falle. Schauen wir uns diesen Code an 'table'XFlase. Wenn wir es so verwenden, wie wir es gerade als ternären Operator geschrieben haben, lautet die bedingte Anweisung A, und der Ausdruck sollte False zurückgeben, was wir erwarten, aber tatsächlich wird dieser Ausdruck

zurückgeben Der Wert von

ist

. Der Wert des gesamten Ausdrucks wird durch den Wert nach
True and 0 or 1
bestimmt, sodass Python die folgenden Werte beurteilt, was dazu führt, dass

zurückgegeben wird, weshalb True ist eine Falle beim Schreiben 01Richtiges Schreiben True and 0TrueWenn Sie ternäre Arithmetik im Python-Symbol verwenden möchten, können Sie if...<a href="http://www.%20php.cn/wiki/111.html" target="_blank">else<code>or für Details. Der Code 1and...or

wird auf die Art

geschrieben, und das Ergebnis Wenn die Bedingung

lautet, wird der vorherige Wert zurückgegeben, und wenn die Bedingung

lautet, gibt es beim Schreiben keine Fallstricke . Die Reihenfolge der Bedingungen und Rückgabewerte unterscheidet sich vom ternären Operator in Java. Machen Sie einfach keinen Fehler if...<a href="http://www.php.cn/wiki/111.html" target="_blank">else</a>

Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung des Python-Ternärrechners und der Kurzschlusslogikmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn