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.
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
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.or
or
Danach Um zu verstehen, was Kurzschlusslogik ist, werfen wir einen Blick auf den
-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
<🎜 ist >, dann ist das Ergebnis des Ausdrucks True
. Dies ist eine sehr praktische Schreibweise, viel einfacher als die x
ifb
-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:
and
ist, wenn or
A = X and 'table' or False
zugewiesen ist , X
wird True
A
zugewiesen; es scheint auf den ersten Blick gut zu sein, aber diese Schreibweise birgt eine Falle. Schauen wir uns diesen Code an 'table'
X
Flase
. 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
ist
. Der Wert des gesamten Ausdrucks wird durch den Wert nachTrue and 0 or 1
zurückgegeben wird, weshalb True
ist eine Falle beim Schreiben 0
1
Richtiges Schreiben True and 0
True
Wenn 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 1
and...or
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!