我正在尝试测试数组中多个值之一的存在,并且它没有按预期运行。
def valueInList(myList = "abcdefgh"):
if "a" or "b" in myList:
return True
else:
return False
例如:
>>> valueInList("abc") #should be True
True
>>> valueInList("def") #should be False
True
为什么这种情况不起作用?
答案 0 :(得分:2)
虽然一个人可以理解"a" or "b" in myList
但Python解释器看到它的方式却截然不同。添加括号有助于显示这一点,因为接下来的两个语句是等效的:
"a" or "b" in myList
("a") or ("b" in myList)
因此,条件将始终返回true,因为" a"是Truthy值,即它不是False,0,空字符串或空列表。