做一个"摘要"循环在python中

时间:2017-09-25 02:18:34

标签: python loops

假设我想计算n,请打印所有a_1 +a_2 + ... + a_n,其中a_i是自然数小于n

如果n是"小" (例如n = 3),我使用以下代码。

from itertools import product
n=3
for a_1,a_2,a_3 in product(range(n),repeat=n):
    print a_1+a_2+a_3

但如果n是"大",说n = 10,我需要输入

from itertools import product
n=10
for a_1,a_2,a_3,a_4,a_5,a_6,a_7,a_8,a_9,a_10 in product(range(n),repeat=n):
    print a_1+a_2+a_3+a_4+a_5+a_6+a_7+a_8+a_9+a_10

如果我想计算n = 100,这种类型会非常糟糕!我们还有其他方法吗?

1 个答案:

答案 0 :(得分:7)

不要解开元组:

for t in product(range(n), repeat=n):
    print sum(t)

通过使用变量,您暗示您不知道元组有多大,因此无法有意义地解压缩它。您的代码必须相应调整。