1 == 2 == 2 nasıl değerlendirilir? [çiftleme]

Aug 22 2020

Bunu REPL'de çalıştırmak bana

>>> 1 == 2 == 2
False

Beni şaşırttı Ki, C bu 1 olarak değerlendirirsiniz ben değerlendirmek sağ tarafını beklenen Trueve 1 == Truebir TruePython. Örneğin, bu beklediğim gibi değerlendiriyor:

>>> 1 == (2 == 2)
True

Python ilk ifadeyi nasıl ayrıştırıyor ve değerlendiriyor? Bu, aynı şekilde değerlendiriyor, ancak beklediğim şey bu çünkü ==doğru ilişkiseldir ve C'de 0 olarak değerlendirilir

>>> 2 == 2 == 1
False

Yanıtlar

7 Noname Aug 22 2020 at 00:22

Bu, operatörlerin zincirleme olgusundan kaynaklanmaktadır

Bir örnek :

>>>  1==2
=> False
>>> 2!=3
=> True

>>> (1==2) and (2!=3)
  # False and True
=> False