私はPythonがブーリアンステートメントをどのように評価するのか混乱しています。ブール演算
例:これが評価されてどのように
False and 2 or 3
戻り3
?私はPythonが最初に 'False and 2'を見て、Falseを返しても '3'を見ていないと考えました。 Pythonがここで見るものの順序は何ですか?
もう一つは、次のとおりです。
1 or False and 2 or 2 and 0 or 0
リターン1
私は最初の例から集められたところでは、その後、1を返します、私はPythonが左から右に評価するだろうと思ったので、「1またはFalse」 '1と2'は2を返し、2や2は最初の2を返し、2と0は0を返し、0または0は2番目の0を返します。
私はここでかなり混乱していると教えてください、助けてください!
ありがとうございます!
ああそうなので、比較は任意のもので、括弧で囲む必要があります。それははるかに理にかなっています。 (1または(Falseおよび2)または(2および0)または0)の代わりに、どのようにして(1または((Falseおよび2)または(2および0))または0) – kkSlider
@kkSlider優先順位を変更する必要がある場合、または通常の数学の場合と同様に、優先順位を変更する必要がある場合、または優先順位を変更したい場合のみ。過度のブラケティングは、コードをあまり明確にしません。あなたの例についてそれはあなたの状況にどのような論理があるのかという問題です。 –
@kkSlider:特定の注文を強制したくない場合でもありません。しかし、式を 'Falseと(2 or 3)'として評価しなければならない場合は、それが必要です。 *編集:* @Lattywareが言ったこと:) –