Wie wird 1 == 2 == 2 bewertet? [Duplikat]
Aug 22 2020
Das Ausführen in der REPL gibt mir
>>> 1 == 2 == 2
False
Was mich überraschte, in C würde dies zu 1 führen. Ich erwartete, dass die rechte Seite zu Python führt Trueund 1 == Truesich Truein Python befindet. Dies wird beispielsweise so bewertet, wie ich es erwarten würde:
>>> 1 == (2 == 2)
True
Wie analysiert und bewertet Python den ersten Ausdruck? Dies wird auf die gleiche Weise bewertet, aber dies ist das, was ich erwarten würde, da ==es rechtsassoziativ ist und in C mit 0 bewertet wird
>>> 2 == 2 == 1
False
Antworten
7 Noname Aug 22 2020 at 00:22
Dies ist auf das Verkettungsphänomen des Bedieners zurückzuführen
Ein Beispiel :
>>> 1==2
=> False
>>> 2!=3
=> True
>>> (1==2) and (2!=3)
# False and True
=> False