数组和操作结果被分配给值的问题

problem with arrays and operations result beign asaigned to values

这是 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 并且循环继续 jumping/changing a 和 b 的值将引导您到达预期的 IndexError: list index out of range

尝试在 pycharm 中执行你的程序并调试它,你会更好地理解它,或者只是放一些打印语句。

我无法在评论中输入太多内容,因此将其作为答案发布。