我的代码:
jx = 0
templist = [x for x in range(0,30)]
while True:
for x in range(1,6):
print(templist[jx])
print(x)
if len(templist) == jx:
break
else:
jx += 1
continue
我试图循环两次并在循环内打印两个不同的项目,但这对我不起作用。
我收到的列表超出范围错误。
答案 0 :(得分:1)
jx永远持续增长,最终达到不存在的临时列表索引。 templist的len为30。templist中的最大值为29。因此,在将templist的长度与jx的最大值进行比较时,需要做负1的比较。您还需要打破外部的while循环。
jx = 0
templist = [x for x in range(0,30)]
break_outer = False
while True:
for x in range(1,6):
print(templist[jx])
print(x)
print len(templist)
if len(templist)-1 == jx:
break_outer = True
break
else:
jx += 1
if break_outer:
break
答案 1 :(得分:0)
尝试打印元素后,您正在测试jx。相反。首先测试是否超出范围,然后打印元素并递增jx。
答案 2 :(得分:0)
当jx
到达len(templist)
时发生错误(在这种情况下为30)。您无法访问templist[30]
,因为索引从零开始,因此最后一个是29。(比长度少1。)
您可以通过将if
语句更改为if len(templist) == jx + 1:
来解决此问题。或通过将print
语句放在if / else子句之后。 (如果您选择后者,则需要删除continue
,但在这里什么也没做。)