我收到IndexError:列表索引超出范围错误。我不知道为什么。有什么建议吗?

该代码试图查看数字列表是否为算术级数,在这种情况下,每个数字都加2。

def is_arith_progession(num_list):

    delta = num_list[1] - num_list[0]
    for num in num_list:
        if not (num_list[num + 1] - num_list[num] == delta):
        return False
    else:
        return True

print(is_arith_progession([2, 4, 6, 8, 10]))

最佳答案

您正在遍历值,而不是数组的索引。因此,num_list[num]可能超出范围。由于您引用了i+1元素,因此迭代到i < n-1

for i, _ in enumerate(num_list[:-1]):
    if num_list[i+1] - num_list[i]...

关于python - 为什么会超出范围?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52560212/

10-13 08:03