Heim >Backend-Entwicklung >Python-Tutorial >Warum wird (1 in [1, 0] == True) in Python als False ausgewertet?

Warum wird (1 in [1, 0] == True) in Python als False ausgewertet?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 18:02:03732Durchsuche

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

Python-Präzedenz und Verkettung: Warum das unerwartete Ergebnis in (1 in [1,0] == True)?

In Python Der Ausdruck (1 in [1,0] == True) ergibt False, was kontraintuitiv erscheinen kann. Um zu verstehen, warum, ist es wichtig, die Operatorpriorität und -verkettung in Python zu kennen.

Operatorpriorität bestimmt die Reihenfolge, in der verschiedene Operatoren in einem Ausdruck ausgewertet werden. In diesem Fall hat der in-Operator eine höhere Priorität als der Vergleichsoperator ==. Der Ausdruck wird also als (1 in [1,0]) == True analysiert, wobei (1 in [1,0]) zuerst ausgewertet wird.

Wenn der Interpreter (1 in [1, 0]), gibt es True zurück, da 1 in der Liste [1,0] ist. Damit endet der Ausdruck jedoch nicht.

Python verwendet Verkettung für Vergleichsoperatoren. Durch die Verkettung können mehrere Vergleiche in einem einzigen Ausdruck durchgeführt werden. In diesem Fall kann der Ausdruck (1 in [1,0]) == True übersetzt werden in:

(1 in [1,0]) und ([1,0] == True)

Nachdem (1 in [1,0]) als „True“ ausgewertet wurde, fährt der Interpreter mit der Auswertung von ([1,0] == True) fort. Dieser Vergleich wird als „Falsch“ ausgewertet, da [1,0] eine Liste und „True“ ein boolescher Wert ist.

Daher wird der Gesamtausdruck als „Falsch“ ausgewertet, da beide Bedingungen im verketteten Vergleich nicht erfüllt sind. Es ist nicht einfach eine Frage der Priorität, sondern vielmehr die Kombination aus Priorität und Verkettung, die zu diesem Ergebnis führt.

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!

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