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

Mary-Kate Olsen
Freigeben: 2024-10-30 09:34:27
Original
406 Leute haben es durchsucht

Why Does

Operator-Vorrang-Rätsel in Python: Das Geheimnis von „in“ und Vergleichen lüften

Das verwirrende Verhalten, das mit Pythons „in“-Operator und beobachtet wurde Vergleiche haben viele verwirrt. Aber unter der Oberfläche verbirgt sich ein subtiles Zusammenspiel von Operatorpriorität und Ausdrucksverkettung.

Operatorpriorität bestimmt die Reihenfolge, in der Operationen innerhalb eines Ausdrucks ausgewertet werden. In Python haben „in“ und Vergleichsoperatoren (z. B. „==“) die gleiche Priorität. Folglich werden sie von links nach rechts verarbeitet.

Die Situation wird jedoch komplizierter, wenn verkettete Ausdrücke beteiligt sind. Beim Versuch, das Ergebnis einer „in“-Operation mit einem anderen Wert zu vergleichen, tritt eine häufige Gefahr auf. Betrachten Sie das folgende Beispiel:

<code class="python">'1' in '11' == True</code>
Nach dem Login kopieren

Überraschenderweise ergibt dieser Ausdruck „False“. Der Grund liegt in der Verkettung von „in“ und „==“. Der Ausdruck wird effektiv wie folgt geparst:

<code class="python">('1' in '11') and ('11' == True)</code>
Nach dem Login kopieren

Der „in“-Operator überprüft, ob „1“ ein Mitglied von „11“ ist, was zu True führt. Der zweite Vergleich, „11“ == True, ergibt jedoch False. Somit wird der Gesamtausdruck als Falsch ausgewertet.

Um den gewünschten Wahr-Wert zu erhalten, muss die Rangfolge explizit geändert werden. Dies kann mithilfe von Klammern erreicht werden:

<code class="python">('1' in '11') == True</code>
Nach dem Login kopieren

Durch das Einschließen der „in“-Operation in Klammern wird der Ausdruck innerhalb seines Gültigkeitsbereichs ausgewertet, bevor er mit „True“ verglichen wird. Diese Änderung führt wie beabsichtigt zu einem True-Ergebnis.

Das Verständnis der Operatorpriorität und -verkettung ist für die Entschlüsselung des Verhaltens komplexer Python-Ausdrücke von entscheidender Bedeutung. Es ermöglicht Entwicklern, die Abfolge von Vorgängen vorherzusehen und unerwartete Fallstricke zu vermeiden.

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!