这是python代码:
x=[2, 3, 5, 7]
for i in range(1, 5000):
if i%2:
if i%3:
if i%5:
if i%7:
x.append(i)
x.remove(1)
a = 6
b = 2
for i in range(0, 10):
a = x[a - b]
b = x[a] - x[b]
由于某种原因,我得到了IndexError: list index out of range
,即使x []为1360并且a仅为6而b为2,所以我不知道为什么会这样。你能帮忙的话,我会很高兴。
我正在使用python shell。那会是个问题吗?
答案 0 :(得分:1)
您的代码问题是您在for循环中的逻辑。
您看到:-
a = 6
b = 2
for i in range(0, 10):
a = x[a - b]
b = x[a] - x[b]
是,a是6,b是2,但是当您第一次进入for循环时, a的值为
x [a-b]是x [6-2]
即x [4]为您提供11
所以a的值是11,b一样,
b = x[a] - x[b] # which translates to x[11] - x[2]
变为b = 32,循环继续跳转/更改a&b的值,这将导致您到达预期的IndexError: list index out of range
。
尝试在pycharm中执行程序并调试它,您会更好地理解它,或者只是放一些打印语句。
我无法在评论中输入太多内容,因此将其发布为答案。