如何压缩这个简单的“if”代码行?

时间:2014-03-21 12:02:48

标签: python

我的程序中有一行代码,用于检查一个数字是否可被几个数字整除。

然而,我现在的方式非常低效和丑陋。

目前看起来像:

if(x % 1 == 0 and x % 2 == 0 and x % 3 == 0)等等其他几个数字。我希望有人可以教我如何取出长and链并帮助我用更有意义的东西替换它,所以它看起来像:

if(x % a[1,2,3] == 0)

这可能吗?如果可以,有人可以帮助我吗?

编辑:x%1 == 0,x%2 == 0等。不是完整的等式。我正在检查远远超过%1,2和3.我正在寻找一个可以说... 1到15的解决方案。这就是我不使用x%6的原因。

4 个答案:

答案 0 :(得分:15)

if all(x % k == 0 for k in [1, 2, 3]):
    print 'yay'

答案 1 :(得分:3)

n = 1*2*3
if(x%n == 0):
    #do stuff

适用于任何一组素数。

答案 2 :(得分:0)

1到15,您可以使用all(x % (k+1) == 0 for k in range(15))。例如::

>>> for x in range(10):
...  if all(x % (k+1) == 0 for k in range(3)): #checks weather x is divisible by 1,2,3
...   print x
... 
0
6

答案 3 :(得分:0)

lcm = LCM of set of number to divide i.e. (1,2,3....)
if(x % lcm == 0)
   //pass