Heim > Artikel > Backend-Entwicklung > Warum wird „(1 in [1, 0] == True)“ als „Falsch“ ausgewertet, während „(1 in [1, 0]) == True“ als „True“ ausgewertet wird?
Warum wird (1 in [1,0] == True) als falsch ausgewertet, obwohl (1 in [1,0]) == True wahr ist?
Wenn man auf den Ausdruck (1 in [1,0] == True) trifft, könnte man erwarten, dass er wie im Fall von (1 in [1,0]) als True ausgewertet wird. Überraschenderweise ergibt die Auswertung jedoch „Falsch“. Um dieses merkwürdige Verhalten zu verstehen, ist es wichtig, sich mit der Vergleichsoperatorverkettung von Python zu befassen.
Pythons Operatorverkettungsmechanismus interpretiert den Ausdruck wie folgt:
<code class="python">(1 in [1, 0]) and ([1, 0] == True)</code>
Dieser Ausdruck verfügt über kaskadierte logische Operatoren mit dem „ und"-Operator hat Vorrang. Folglich läuft die Auswertung wie folgt ab:
Da der „und“-Operator für ein True-Ergebnis erfordert, dass beide Operanden „True“ sind und einer der Operanden „False“ ist, wird der gesamte Ausdruck als „False“ ausgewertet.
Dieses Verkettungsverhalten gilt auch für andere verkettete Vergleichsoperatoren, wie zum Beispiel:
Das Verständnis dieses Operatorverkettungsmechanismus ist wichtig, um Ausdrücke mit kaskadierten Vergleichsoperatoren in Python korrekt zu interpretieren und zu ändern.
Das obige ist der detaillierte Inhalt vonWarum wird „(1 in [1, 0] == True)“ als „Falsch“ ausgewertet, während „(1 in [1, 0]) == True“ als „True“ ausgewertet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!