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
我想用 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