0
k = 10/3
l = k <= 3 or True
このコードのlの値はTrueを返します。これはどのように可能ですか?評価の順序では、 "or、not、and"演算子よりも優先順位が高くなります。Pythonでの評価順序
k = 10/3
l = k <= 3 or True
このコードのlの値はTrueを返します。これはどのように可能ですか?評価の順序では、 "or、not、and"演算子よりも優先順位が高くなります。Pythonでの評価順序
彼らは高い優先度を持っている、しかし、or
operator works by:
表現
x or y
が最初x
を評価します。x
が真の場合、その値が返されます。それ以外の場合はy
が評価され、結果の値が返されます。k
以来
式k <= 3
がFalse
で、3.3333333333333335
で、True
は(自分自身に)評価されることになるだろうとl == True
を作っ返されます。
私は短い質問を補うために大きなトップの答えが存在するこの質問にこれをdupingしています。http://stackoverflow.com/questions/16069517/python-logical-evaluation-order-in-if-statement –