数组和运算结果存在问题,无法确定为值

时间:2019-03-04 04:04:32

标签: python python-2.6

这是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。那会是个问题吗?

1 个答案:

答案 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中执行程序并调试它,您会更好地理解它,或者只是放一些打印语句。

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