0

この if ステートメントをもっと短く書く方法があるかどうかを調べようとしています (非常に基本的で非現実的な if ステートメントを書いたのは、要点を簡単に理解できるようにするためです。

  x = 3

  if x == 1 or x == 2 or x == 3 or x==4:

     print x

  else:

     print "nope"

次の行に沿って何かを書きたいと思います。

if x == or(1,2,3,4):

それを行う方法はありますか?または、すべてのオプションを書き出す必要がありますか?

ありがとう、ショーン

4

3 に答える 3

7

あなたがしたい:

if x in (1, 2, 3, 4):
于 2013-10-15T19:24:37.210 に答える
3

in次の演算子を使用します。

if x in range(1, 5)

Python2 では、 を使用できますxrange

Python 3.2+ では、セット リテラルを使用することをお勧めします。

if x in {1, 2, 3, 4}:

ドキュメントから

Python のピープホール オプティマイザは、x などのパターンin {1, 2, 3}を一連の定数のメンバーシップのテストとして認識するようになりました。オプティマイザはsetを として再キャストしfrozenset、事前に構築された定数を格納します。速度のペナルティがなくなったので、set-notation を使用してメンバーシップ テストを書き始めるのが実用的です。このスタイルは、意味的に明確であり、操作も高速です。

于 2013-10-15T19:24:21.907 に答える
0
if x>=1 or x<=4:

仕事をします

于 2013-10-15T19:25:34.340 に答える