如何使用Python在一行中测试几个模数值?

时间:2015-09-28 18:51:12

标签: python modulo

假设我的值可能在[28,32]范围内,或者是该范围内数字的倍数。

有没有办法可以使用模运算符在一行中测试?

尝试:

if value % (28 or 29 or 30 or 31 or 32) == 0:
    # do stuff

还有一些类似的变化。我试图搜索,因为我确信这是一个常见的操作,但我找不到答案。

2 个答案:

答案 0 :(得分:4)

这是any

的工作
   if any( value % m == 0 for m in range(28,33) ):
       #do stuff

答案 1 :(得分:3)

您可以使用any来检查多个相似表达式的真实性:

if any(value % n == 0 for n in (28, 29, 30, 31, 32)):