一起链接python条件不能按预期工作

时间:2014-08-07 04:20:43

标签: python

我正在尝试测试数组中多个值之一的存在,并且它没有按预期运行。

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

为什么这种情况不起作用?

1 个答案:

答案 0 :(得分:2)

Python不使用自然语言

虽然一个人可以理解"a" or "b" in myList但Python解释器看到它的方式却截然不同。添加括号有助于显示这一点,因为接下来的两个语句是等效的:

"a"   or  "b" in myList
("a") or ("b" in myList)

因此,条件将始终返回true,因为" a"是Truthy值,即它不是False,0,空字符串或空列表。