これは、or
がand
より低い優先順位を持つPython 2.7ドキュメントです。私はアイドルでこれを入力するとしかし:私は演算子の優先順位をPythonで理解できませんTrueおよびFalseまたはTrue
>>> True and True or False
True
>>> True and False or True
True
>>> True and False
False
はなぜこのTrue and False or True
表現True
の結果は?
これは、or
がand
より低い優先順位を持つPython 2.7ドキュメントです。私はアイドルでこれを入力するとしかし:私は演算子の優先順位をPythonで理解できませんTrueおよびFalseまたはTrue
>>> True and True or False
True
>>> True and False or True
True
>>> True and False
False
はなぜこのTrue and False or True
表現True
の結果は?
最高の優先順位はあなたが括弧を置く場所
((True and True) or False) # True
((True and False) or True) # True
(True and False) # False
高い優先順位がそう、算術では、乗算は加算の前に評価する必要があり、例えば、のようなオペレータは、低い優先順位を持つ演算子の前に評価されるだろうということを意味し1 + 2 * 3
は7
であり、9
ではありません。
お客様の用途では、True and False
が最初に評価され、False
となります。この結果は、or
演算子(すなわち、False or True
)で評価され、True
となります。
実際、演算子の優先順位はこの結果とは関係ありません。 or
はいずれかの引数が真であれば常にTrueを返しますので、かっこを置く場所は同じです。だから、:
True and (False or True) == True and (True) == True
(True and False) or True == (False) or True == True
あなたの文は、次の
まずPythonの左側の式を評価を行うことを求めています。
評価1:真と偽(これは偽のpythonと評価されているので、その後または式に見えます)
評価2:真または偽
その後、あなたはまた、真
にも評価されますブール論理と真理値表を見て、これがどのように機能するかを理解するのを助けてください。
...それはどのように動作しますか? – miradulo
この場合、カッコを付けずに優先度が等しいので、値は左から右へと評価され、TrueおよびFalseまたはTrue = =(TrueおよびFalse)またはTrue '=' FalseまたはTrue' = 'True'です。 –
私はいくつかの "not"演算子と "if"節に2つのステートメントを持ち、間違いを犯しました。質問を削除するには? :)そして答えに感謝します。 –