Unraveled: The Mystery of Why '(1 in [1,0] == True)' wird als False ausgewertet
Der Ausdruck ' (1 in [1,0] == True)' in Python mag zunächst kontraintuitiv erscheinen und als False ausgewertet werden, obwohl man erwarten könnte, dass es True ist. Um dieses Rätsel zu lösen, müssen wir uns mit den inneren Abläufen des Bewertungsprozesses von Python befassen.
Seltsamerweise interpretiert Python diesen Ausdruck als eine Kette von Vergleichen und nicht als einfache Prüfung anhand eines booleschen Werts. Die wahre Struktur des Ausdrucks wird wie folgt angezeigt:
(1 in [1,0]) and ([1,0] == True)
Diese Vergleichskette ergibt „False“, da der erste Ausdruck „(1 in [1,0])“ „True“ und der zweite Ausdruck „True“ zurückgibt , '([1,0] == True)' ergibt Falsch.
Dieses Phänomen der Vergleichsverkettung tritt auch in anderen Ausdrücken auf, wie zum Beispiel 'a < b < c', was übersetzt bedeutet:
(a < b) and (b < c)
ohne doppelte redundante Auswertung von 'b'.
Es ist wichtig, diesen Aspekt des Auswertungsverhaltens von Python zu verstehen, um unerwartete Ergebnisse beim Umgang mit Komplexen zu vermeiden Ausdrücke, die Vergleiche beinhalten.
Das obige ist der detaillierte Inhalt vonWarum wird „(1 in [1,0] == True)' in Python als „False' ausgewertet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!