當「如果」是結合「或」,其中之一的Python優先第一: 例如:爲什麼這個條件表達式不會生成一個SyntaxError?
if a == b or c
是它(a == b) or c
還是a == (b or c)
。 我認爲正確的邏輯形式應該是前者,但我不小心用:
if gender == "m' or "M"
和我吃驚的是,它並沒有產生任何錯誤,並做了目的。
當「如果」是結合「或」,其中之一的Python優先第一: 例如:爲什麼這個條件表達式不會生成一個SyntaxError?
if a == b or c
是它(a == b) or c
還是a == (b or c)
。 我認爲正確的邏輯形式應該是前者,但我不小心用:
if gender == "m' or "M"
和我吃驚的是,它並沒有產生任何錯誤,並做了目的。
下表總結在Python操作優先級,從 最低優先級(至少結合)到最高優先級(最 結合)。
lambda if – else or and not x in, not in, is, is not, <, <=, >, >=, !=, == ...
因此,要回答你的問題,
a == b or c
是相當於
(a == b) or (c)
代碼if gender == "m" or "M"
會像這樣:是gender == 'm"
?如果是,結果是True
。否則,測試"M"
的「真實性」。是"M"
「真」?如果是,結果是真的。要理解這是如何工作的,你應該知道所有對象都有一個與之相關的真實性。所有非零整數,非空字符串和數據結構爲True
。 0
,0.0
, ''
,None
,False
,[]
,{}
和set()
都是False
。
有關詳細信息,請訪問:How do I test one variable against multiple values?
問題沒有顯示出研究工作。一個簡單的搜索或谷歌搜索將揭示答案。請閱讀並遵循發佈指南:我可以詢問哪些類型的問題https://stackoverflow.com/help/on-topic,以及如何提問:https://stackoverflow.com/help/how-to-ask。請記住還要包含最小,完整,可驗證的示例:https://stackoverflow.com/help/mcve。然後,點擊編輯編輯您的問題,以便我們提供幫助。 – SherylHohman