为什么这个嵌套循环不起作用?

时间:2013-12-27 17:35:43

标签: python

我正在尝试生成一个三角形数字列表(数字是以前数字的总和3 = 2 + 1,6 = 3 + 2 + 1等)但是由于某种原因,嵌套循环永远不会被迭代

triangulars = []
for i in range(1, 1000):
    sum = 0
    for j in range(i, 0):
        sum += j
triangulars.append(sum)  
print(triangulars)

3 个答案:

答案 0 :(得分:3)

因为range(i,0)

i >= 0为空

for j in range(i,0)更改为for j in range(i,0,-1)

答案 1 :(得分:2)

此外,您需要在第一个循环中推送triangulars.append(sum)(对于我......)。

答案 2 :(得分:1)

您的代码中似乎有两个小错误。首先range(i, 0)将返回一个空列表,如果i >= 0,也许您想要range(0, i)range(i, 0, step=-1),我认为在这种情况下,其中任何一个都可行。第二,看起来你的缩进就在triangulars.append(sum)一行。现在它在两个循环之外,我想你想要它在第一个循环中。

此问题也不需要双循环,您可以执行以下操作:

def make_triangulars(N):
    triangulars = []
    last = 0
    for i in range(1, N):
        last += i
        triangulars.append(last)
    return triangulars