繁体   English   中英

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

[英]How can I condense this simple “if” line of code?

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

然而,我目前的方式是非常低效和丑陋。

它目前看起来像:

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。

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

适用于任何一组素数。

对于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
lcm = LCM of set of number to divide i.e. (1,2,3....)
if(x % lcm == 0)
   //pass

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM