Wenn Booleschen Ausdrücken in Python hinzugefügt, es scheint, dass sie in Klammern wirft sie in int
umschließt, wenn Sie sie hinzufügen, aber nicht so unterhält ihre Arten tun:Warum gibt (0> 1 + 0> 9) Falsch zurück, aber ((0> 1) + (0> 9)) gibt 0 zurück?
>>> ((0>1) + (0>9))
0
>>> (0>1 + 0>9)
False
>>> (0>1 + (0>9))
False
Warum ist das? Es scheint mir, dass Klammern sollten nur die Reihenfolge der Operationen ändern verwendet werden (mit Ausnahme einiger Fälle, in denen Sie mit runden Klammern Tupeln definieren), nicht die Art des Inhalts, so würde ich erwarten:
(<expression>) == <expression>
Ah. Ich hatte den Eindruck, dass der Vergleichsoperator Vorrang vor den arithmetischen hatte, aber es macht Sinn, dass sie das nicht tun, sonst wären Dinge wie 1 + 0> 9 wirklich unintuitiv. https://docs.python.org/3/reference/expressions.html#operator-precedence – germanjaber