由於某種原因,此代碼不適用。它適用於'和'命令,但我不完全確定如何使用'或'。我當前的代碼:如何在python中正確使用'或'命令
if (response1 not in symbols or letters):
print("You did something wrong")
由於某種原因,此代碼不適用。它適用於'和'命令,但我不完全確定如何使用'或'。我當前的代碼:如何在python中正確使用'或'命令
if (response1 not in symbols or letters):
print("You did something wrong")
Python中的or
(和大多數編程語言爲此事)不喜歡「或」從語言。 當你說
if (response1 not in symbols or letters)
的Python實際上將其解釋爲
if ((response1 not in symbols) or (letters))
這是不是你想要的。所以你應該做的是:
if ((response1 not in symbols) and (response1 not in letters))
@ user3468137:除了這個答案,您還可以閱讀[表達式摘要文檔](http://docs.python.org/2/reference/expressions.html#expressions)。特別是[布爾運算](http://docs.python.org/2/reference/expressions.html#boolean-operations),[表達式評估順序](http://docs.python.org/2/reference/expressions .html#evaluation-order)和[Operator Precedence](http://docs.python.org/2/reference/expressions.html#operator-precedence) – vaibhaw
or
是一個邏輯運算符。如果or
之前的部分爲真,則返回該部分,如果不是,則返回第二部分。
所以在這裏,要麼response1 not in symbols
爲真,然後返回,否則返回letters
。如果letters
中有東西,那麼它本身就是真實的,並且if
語句會認爲它是真的。
您正在尋找
if (response1 not in symbols) and (response1 not in letters):
print("You did something wrong")
見http://stackoverflow.com/questions/20002503/why-does-ab-or-c-or-d-always-evaluate-to-true和http://stackoverflow.com/questions/15112125/if-x-or-y-or-z-blah –
有時我想知道用'&&'和'||'代替''是否會更好? '和'或',只是爲了讓人們意識到經營者不會做英語連詞所做的十件事情。 – user2357112