这是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。那会是个问题吗?
您的代码问题是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中执行你的程序并调试它,你会更好地理解它,或者只是放一些print语句。
我无法在评论中输入这么多内容,因此将其作为答案发布。