誤って式に複数のin
キーワードを使用しましたが、コードは引き続き動作します。 複数の繰り返しの `in`キーワード
"a" in "bar" in "foo" # in ... ?
は単純に私は、これは
("a" in "bar") in "foo"
または
"a" in ("bar" in "foo")
に同等であったが、両方が有効ではありませんので、それはそうではないことを考えた:の意味は何ですか
。 I取得python2または3
誤って式に複数のin
キーワードを使用しましたが、コードは引き続き動作します。 複数の繰り返しの `in`キーワード
"a" in "bar" in "foo" # in ... ?
は単純に私は、これは
("a" in "bar") in "foo"
または
"a" in ("bar" in "foo")
に同等であったが、両方が有効ではありませんので、それはそうではないことを考えた:の意味は何ですか
。 I取得python2または3
in
で同じ動作を比較演算子とみなされ、そしてPython's documentation for themから:
比較は任意に連鎖させることができ、例えば、その
y
が評価された以外x < y <= z
は、x < y and y <= z
に相当します(ただし、どちらの場合もx < y
が偽であると判断された場合、z
は評価されません)。は正式には、、B、C場合、...、Y、Zは...、OP2、式及びOP1あり、OPN比較され
a op1 b op2 c ... y opN z
はa op1 b and b op2 c and ... y opN z
に相当しますが、各式の評価は最大で1回です。
Pythonは(あなたが括弧でグループ化/流量を制御することができ、THO)左から右に評価し、比較演算子は式任意ように連鎖することができる:
:"a" in "bar" in "foo" in "baz"
が本質的に終わります
False
に解決されます。
これは以下を意味するようだ:
("a" in "bar") and ("bar" in "foo")
- 次は役立つかもしれないかFalse
:
"a" in "bar" in "foo"
=>False
"a" in "bar" in "foobar"
=>True
"b" in "bar" in "foobar"
= >True
"c" in "bar" in "foobar"
=>False
私はそれが"a" in ("bar" in "foo")
ていたかもしれないと最初は思ったが、それは明らかに、以下を返します:
TypeError: argument of type 'bool' is not iterable
("bar" in "foo")
ため、戻りFalse
編集固定明らかに誤植
おそらく ' '' 'バー' と' X
@ Ev.Kounis:なぜ?私はドキュメントでそれを見つけることができません。そして "d"の "c"の "b"の "a"の意味は何ですか? " 『中『の』 –
'(「」「B」において)であろう拡張により@RuggeroTurra、及び(cで「B」「)と(」D「における 『C』) 'と'』バーa''」内の '「バー」' false'をであるため、「AAA」 '* *は' false'に評価され、私はあなたのポイントが何であるかはよく分からないん。 – jamesdlin