繁体   English   中英

Python 缩短简单的 if 语句

[英]Python shortening simple if statement

是否可以在此程序片段中缩短 if 语句?

for number in range(100):
    if (number % 4 == 0 and number % 3 == 0 and number % 2 == 0):

只需使用: if number % 12 == 0:

这是因为 12 是 4、3 和 2 的最小公倍数。

在编辑:

下面是一些计算整数列表(或其他可迭代)的最小公倍数的代码:

from math import gcd

def pair_lcm(a,b):
    return a*b//gcd(a,b)

def lcm(nums):
    """computes the lcm of iterable nums"""
    m = 1
    for num in nums:
        m = pair_lcm(m,num)
    return m

例如,

>>> lcm(range(1,11))
2520

如果您不想计算将它们组合起来:

for number in range(100):
    if all(number % n == 0 for n in (2, 3, 4)):

暂无
暂无

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

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