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, während „(1 in [1, 0]) == True“ als „True“ ausgewertet wird?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-01 19:11:30624Durchsuche

Why Does `(1 in [1, 0] == True)` Evaluate to False While `(1 in [1, 0]) == True` Evaluates to True?

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:

  • (1 in [1, 0]) ergibt „True“.
  • ([1, 0] == True) ergibt „False“.

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:

  • a < b < c wird zu (a < b) und (b < c)
  • a == b == c wird zu (a == b) und (b == c)

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!

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