Was bedeutet x in Bereich (...) == y in Python 3? [Duplikat]

8
    

Diese Frage hat hier schon eine Antwort:

    

Ich bin gerade auf die folgende Zeile in Python 3 gestoßen.

%Vor%

Ich habe erwartet, dass dies True ist, da 1 in range(2) True ist und True == True True ist.

Aber dies gibt False aus. Es bedeutet also nicht dasselbe wie (1 in range(2)) == True . Außerdem bedeutet das nicht dasselbe wie 1 in (range(2) == True) , was einen Fehler verursacht.

Trotz jahrelanger Erfahrung in Python bin ich überrascht. Was ist los?

    
Olivier Melançon 09.02.2018, 23:26
quelle

1 Antwort

10

Dies ist aufgrund der Tatsache, dass beide Operatoren Vergleichsoperatoren sind, so dass es als Operatorverkettung interpretiert wird:

Ссылка

  

Vergleiche können beliebig verkettet werden, z. B. x < y <= z ist äquivalent   to x < y and y <= z , außer dass y nur einmal ausgewertet wird (aber in beiden   Fälle z wird überhaupt nicht ausgewertet, wenn x < y als falsch erkannt wird.

Es entspricht also:

%Vor%     
juanpa.arrivillaga 09.02.2018, 23:34
quelle

Tags und Links