我是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)
?
答案 0 :(得分:7)
由于
>>> len([])
0
和
>>> range(1, 0)
[]
(或python3中的空range
个对象)
因此循环不会执行任何迭代,并且永远不会执行nums[i]
上的访问。