为什么我的Python程序中没有列表索引超出范围错误?

时间:2014-07-02 08:14:29

标签: python

我是Python的新手,并且只学习了一个星期所以请原谅我,如果答案对于那些经验丰富的人来说真的很明显。我写了一个简单的程序如下,不明白为什么我没有得到“错误:列表索引超出范围”。

def sum13(nums):
    sum=0
    for i in range(1,len(nums)):
        if nums[i]==13 or nums[i-1]==13:
            sum=sum
        else:
            sum=sum+nums[i]
    if len(nums)>=1:
        if nums[0]==13:
            sum=sum
        else:
            sum=sum+nums[0]
    return sum

print(sum13([]))

在函数sum13(nums)中使用for循环时,我指示range(1,len(nums)),并且索引1不存在于空列表中。当我在空列表中使用函数no error: list index out of range时,为什么会出现sum13(nums)

1 个答案:

答案 0 :(得分:7)

由于

>>> len([])
0

>>> range(1, 0)
[]

(或python3中的空range个对象)

因此循环不会执行任何迭代,并且永远不会执行nums[i]上的访问。