我正在尝试生成一个三角形数字列表(数字是以前数字的总和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)
答案 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