Python 为什么';这个嵌套循环不行吗?
我试图生成一个三角形数字的列表(这些数字是先前数字3=2+1、6=3+2+1等的总和),但由于某些原因,嵌套循环从未被迭代过Python 为什么';这个嵌套循环不行吗?,python,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) 因为范围(i,0)在i>=0时为空 将范围(i,0)中j的更改为范围(i,0,-1)中j
triangulars = []
for i in range(1, 1000):
sum = 0
for j in range(i, 0):
sum += j
triangulars.append(sum)
print(triangulars)
因为范围(i,0)
在i>=0时为空
将范围(i,0)中j的更改为范围(i,0,-1)中j的,
,因为范围(i,0)
在i>=0时为空
将范围(i,0)中j的更改为范围(i,0,-1)中j的,,您还需要在第一个循环(i…)内推送三角形。在第一个循环(i…)内追加(sum)
。您还需要在第一个循环(i…)内推送三角形。追加(sum)
.您的代码中似乎有两个小错误。首先range(i,0)
将返回一个空列表,如果i>=0
,可能您想要range(0,i)
或range(i,0,step=-1)
,我认为在这种情况下这两种方法都可以工作。第二,看起来您的缩进在三角形上被取消了。append(sum)
。现在它在两个循环之外,我想你希望它在第一个循环之内
此外,对于此问题,您不需要双循环,您可以执行以下操作:
def make_triangulars(N):
triangulars = []
last = 0
for i in range(1, N):
last += i
triangulars.append(last)
return triangulars
看起来代码中有两个小错误。首先range(i,0)
将返回一个空列表,如果i>=0
,可能您想要range(0,i)
或range(i,0,step=-1)
,我认为在这种情况下这两种方法都可以工作。第二,看起来您的缩进在三角形上被取消了。append(sum)
。现在它在两个循环之外,我想你希望它在第一个循环之内
此外,对于此问题,您不需要双循环,您可以执行以下操作:
def make_triangulars(N):
triangulars = []
last = 0
for i in range(1, N):
last += i
triangulars.append(last)
return triangulars
当i>=0时范围(i,0)为空当i>=0时范围(i,0)为空