我很困惑Python如何評估布爾語句。布爾操作
例如,
False and 2 or 3
回報3
這是如何評估的?我認爲Python首先看着'False和2',並且甚至沒有看''或'3'就返回False。 Python在這裏看到的順序是什麼?
另一個原因是:
1 or False and 2 or 2 and 0 or 0
返回1
從我從第一個例子中聚集,我想的Python將評估由左到右,所以「1或假」將返回1,那麼「1和2」將返回2,則「2或2」將返回第一2,則「2和0」將返回0,則「0或0」將返回第二0
,你可以告訴我在這裏很困惑,請幫助!
謝謝!
啊所以任何比較,都應該被括在自己的括號內。這樣做更有意義。你怎麼知道要做的(1或((((False和2)或(2和0))或0))而不是(1或(False和2)或(2和0)或0)? – kkSlider
@kkSlider只有在需要改變優先順序時,或者想要使其更清晰 - 就像在正常的數學中一樣。過度的包圍會使你的代碼不太清晰。至於你的例子。這是你的情況的邏輯是什麼。 –
@kkSlider:如果您不想執行特定的訂單,則不一定非要這樣做。但是,如果您想要將表達式評估爲「False和(2或3)」,那就必須這樣做。 *編輯:*什麼@Lattyware說:) –