[英]Trouble with or, and, and not in if statments in Python
由於某種原因,它總是使所有內容通過。
if (keyphrase or keyphrase2 in comment.body) and ("Proof" or "proof" or "roof" or "Roof" or "woof" or "Woof" not in comment.body):
#do stuff
我是Python新手,很抱歉。
您應該對生成器表達式使用any
and all
來測試成員資格的多個值:
if any(k in comment.body for k in (keyphrase, keyphrase2)) and all(k not in comment.body for k in ("Proof", "proof", "roof", "Roof", "woof", "Woof")):
您可能期望:
if (x or y in z):
與以下相同:
if (x in z) or (y in z):
但實際上是:
if (x) or (y in z):
因此,任何類似於x
True值都將允許您輸入if
塊主體。
有幾種方法可以使您獲得所需的結果,一種是any
函數和一個generator表達式):
if any(thing in z for thing in [x,y])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.