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

问题描述 投票:1回答:1

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

python python-2.6
1个回答
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中执行你的程序并调试它,你会更好地理解它,或者只是放一些print语句。

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

© www.soinside.com 2019 - 2024. All rights reserved.