2016-03-23 2 views
0

これは、orandより低い優先順位を持つ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の結果は?

+3

...それはどのように動作しますか? – miradulo

+0

この場合、カッコを付けずに優先度が等しいので、値は左から右へと評価され、TrueおよびFalseまたはTrue = =(TrueおよびFalse)またはTrue '=' FalseまたはTrue' = 'True'です。 –

+0

私はいくつかの "not"演算子と "if"節に2つのステートメントを持ち、間違いを犯しました。質問を削除するには? :)そして答えに感謝します。 –

答えて

0

最高の優先順位はあなたが括弧を置く場所

((True and True) or False) # True 
((True and False) or True) # True 
(True and False)   # False 
2

高い優先順位がそう、算術では、乗算は加算の前に評価する必要があり、例えば、のようなオペレータは、低い優先順位を持つ演算子の前に評価されるだろうということを意味し1 + 2 * 37であり、9ではありません。

お客様の用途では、True and Falseが最初に評価され、Falseとなります。この結果は、or演算子(すなわち、False or True)で評価され、Trueとなります。

1

実際、演算子の優先順位はこの結果とは関係ありません。 orはいずれかの引数が真であれば常にTrueを返しますので、かっこを置く場所は同じです。だから、:

True and (False or True) == True and (True) == True 
(True and False) or True == (False) or True == True 
1

あなたの文は、次の

まずPythonの左側の式を評価を行うことを求めています。

評価1:真と偽(これは偽のpythonと評価されているので、その後または式に見えます)

評価2:真または偽

その後、あなたはまた、真

にも評価されますブール論理と真理値表を見て、これがどのように機能するかを理解するのを助けてください。

関連する問題