if语句中“ in”的使用和含义?


问题内容

在Zed Shaw的《 学习Python的艰难方法》 的示例 ,其中一个练习显示了以下代码:

next = raw_input("> ")
if "0" in next or "1" in next:
    how_much = int(next)

我很难理解in此声明中的含义。我习惯if在javascript中使用语句,例如语法:

var = 5;
if (var > 3) {
    //code  to be executed
}

这是if/in陈述(在Python)一样if()在JavaScript?

找到答案很棘手,因为in字符串太短,无法通过搜索引擎缩小答案范围,而且我不知道其操作的正确名称。


问题答案:

这取决于什么next

如果是字符串(如您的示例所示),则in检查子字符串。

>>> "in" in "indigo"
True
>>> "in" in "violet"
False
>>> "0" in "10"
True
>>> "1" in "10"
True

如果是另一种可迭代的类型(列表,元组,集合,字典…),则in检查成员资格。

>>> "in" in ["in", "out"]
True
>>> "in" in ["indigo", "violet"]
False

在字典中,成员资格被视为“关键之一”:

>>> "in" in {"in": "out"}
True
>>> "in" in {"out": "in"}
False