繁体   English   中英

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

[英]Why is there no list index out of range error in my Python program?

我是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)no error: list index out of range

因为

>>> len([])
0

>>> range(1, 0)
[]

(或python3中的空range对象)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM