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为 afrozenset并存储预构建的常量。现在速度损失已经消失了,开始使用集合符号编写成员测试是可行的。这种风格在语义上清晰且操作快速。

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

会做这项工作

于 2013-10-15T19:25:34.340 回答