while循环python


Answers

看到这个: close[x+1]

那就是问题所在。 事实上,根据你写的条件,x总是一个有效的索引。 但是在最后的迭代中,你会发现x+1不是。 如果你想避免超出范围,你将不得不从你正在检查的最大值中减去1。

Question

我是新的python,并有问题,看看为什么这个代码不起作用。 我希望它返回[10,122,2]。

close = [5000,5010,5132,5134]

def difference():
    x = 0
    data = []
    while x < len(close):
        diff = close[x+1]-close[x]
        data.append(diff)
        x = x + 1
    return data

它返回“IndexError:列表索引超出范围”,但我的理解是while循环只有当条件满足时才运行。 我错过了什么? 谢谢




Links