if文中の"in"の使い方と意味は?

Zed Shaw'sのLearn Python the Hard Wayの例では、ある演習問題で次のようなコードが表示されています。

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

この文の中の in の意味を理解するのに苦労しています。私はjavascriptなどでif文を使うことに慣れていて、その構文は次のようなものです。

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

このif/in文(python)は、javascriptのif()と同じですか?

というのも、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

辞書では、メンバーシップは、"being one of the keys"と見なされます。

>>> "in" in {"in": "out"}
True
>>> "in" in {"out": "in"}
False
解説 (1)

a in bを使うと、単純にb.contains(a)` と訳され、b が a を含むかどうかを should 返すことになります。

しかし、あなたの例は少し奇妙に見えます。それは、ユーザーから入力を受け取り、その整数値を how_much 変数に代入しています。

解説 (3)

これらの例は in が何をするかを説明するのに役立つでしょう。基本的には「このアイテムはこの他のアイテムの中にあるのか」という意味になります。

listOfNums = [ 1, 2, 3, 4, 5, 6, 45, 'j' ]

>>> 3 in listOfNums:
>>> True

>>> 'j' in listOfNums:
>>> True

>>> 66 in listOfNums:
>>> False
解説 (0)