1 == 2 == 2はどのように評価されますか?[複製]
Aug 22 2020
これをREPLで実行すると、
>>> 1 == 2 == 2
False
驚いたことに、Cではこれは1と評価されます。右側が評価されることを期待しTrue
て1 == True
おりTrue
、Pythonを使用しています。たとえば、これは私が期待するように評価されます。
>>> 1 == (2 == 2)
True
Pythonは最初の式をどのように解析および評価していますか?これは同じように評価されますが、これ==
は右結合であり、Cでは0と評価されるため、私が期待するものです。
>>> 2 == 2 == 1
False
回答
7 Noname Aug 22 2020 at 00:22
これは、オペレーターの連鎖現象によるものです。
例 :
>>> 1==2
=> False
>>> 2!=3
=> True
>>> (1==2) and (2!=3)
# False and True
=> False