簡體   English   中英

Python中的or語句和or和not引起麻煩

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM