Warum wird \'1\' in \'11\' == True in Python zu False ausgewertet?

Patricia Arquette
Freigeben: 2024-10-30 11:38:00
Original
652 Leute haben es durchsucht

Why Does '1' in '11' == True Evaluate to False in Python?

Python: Verwechslung der Operatorpriorität mit „in“- und Vergleichsoperatoren

In Python kann der Vergleich von Sequenzzugehörigkeit und Gleichheit zu unerwarteten Ergebnissen führen auf die gleiche Priorität der 'in'- und Vergleichsoperatoren. Wenn diese Operatoren in einem Ausdruck ohne Klammern vorkommen, werden sie von links nach rechts ausgewertet.

Zum Beispiel:

'1' in '11' == True  # Evaluates to False
Nach dem Login kopieren

Dieser Ausdruck wird interpretiert als:

('1' in '11') and ('11' == True)
Nach dem Login kopieren

Da „11“ nicht gleich „True“ ist, wird der gesamte Ausdruck als „False“ ausgewertet. Um das beabsichtigte Ergebnis (True) zu erreichen, sind Klammern erforderlich:

'1' in '11' == True  # Evaluates to True
Nach dem Login kopieren

Wenn jedoch Klammern um den entgegengesetzten Operanden gesetzt werden:

'1' in ('11' == True)  # TypeError
Nach dem Login kopieren

ein TypeError wird ausgelöst, weil „11“ ist gleich True, was ein boolescher Wert ist und daher nicht iterierbar ist. Um diesen Fehler zu vermeiden, stellen Sie sicher, dass der „in“-Operator mit einem iterierbaren Objekt verwendet wird.

Das Verständnis der Operatorpriorität und -verkettung in Python ist entscheidend, um Code zu schreiben, der sich wie erwartet verhält. Operatoren mit gleicher Priorität werden von links nach rechts ausgewertet, und durch die Verkettung können Sie mehrere Auswertungen in einer einzigen Zeile durchführen. Durch sorgfältiges Berücksichtigen der Operatorpriorität und -verkettung können Sie unerwartete Ergebnisse vermeiden und effizienteren Code schreiben.

Das obige ist der detaillierte Inhalt vonWarum wird \'1\' in \'11\' == True in Python zu False ausgewertet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!