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!