python 无法检查多个匹配字符串

python cant check for more than one matching string

我想用 if 语句检查字符串匹配。我的代码如下所示:

labels = {"Channel 1": "", "Channel 2": "", "Channel 3": "", "Channel 4": ""}
for label in labels.keys():         
       if "Channel 1" or "Channel 2" == label:
            print("match")
       else:
            print("no match")

输出:

match
match
match
match

我希望得到:

match
match
no match
no match

为什么这不起作用?

这一行有问题:

if "Channel 1" or "Channel 2" == label:

基本上您是在尝试检查“频道 1”是否存在或“频道 2”等于标签。

您可能想要的是:

if "Channel 1" == label or "Channel 2" == label:

"Channel 1" or "Channel 2" == label 将计算为 True,因为 "Channel 1" 作为包含内容的字符串将始终计算为 True。

这里的操作顺序是这样的:("Channel 1") or ("Channel 2" == label)

你想做的是其中之一

if label == "Channel 1" or label == "Channel 2":
    pass
if label in ("Channel 1", "Channel 2"):
    pass