有没有一种方法可以使此代码不那么恐怖? Python 3

时间:2019-11-18 18:52:04

标签: python-3.x for-loop division

因此,我试图将一个数字同时除以1到7。 如何简化“ if”部分?

我是一个初学者,所以如果可能的话,请使其易于理解。

谢谢!

result = []

for _ in range(1, 9999):
    if _ % 1 == 0 and _ % 2 == 0 and _ % 3 == 0 and _ % 4 == 0 and _ % 5 == 0 and _ % 6 == 0 and _ % 7 == 0:
        result.append(_)

print(result)

1 个答案:

答案 0 :(得分:3)

如果使用变量,则不要将其命名为_,该字符用于需要分配某些内容但从不使用的情况。最后,您正在寻找我认为的all(...)语法:

result = []

for num in range(1, 9999):
    if all(num % x == 0 for x in range(1, 8)):
        result.append(num)

print(result)

或一行:

result = [num for num in range(1, 9999) if all(num % x == 0 for x in range(1, 8))]