Почему в моей программе на Python нет ошибки list index out of range?

#python

#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([]))
  

При использовании цикла for в функции sum13(nums) я указал range(1,len(nums)) , что индекс 1 не существует в пустом списке. Почему это происходит, no error: list index out of range когда я использую функцию sum13(nums) в пустом списке?

Ответ №1:

Потому что

 >>> len([])
0
  

и

 >>> range(1, 0)
[]
  

(или пустой range объект в python3)

таким образом, цикл не выполняет никаких итераций, и доступ к nums[i] никогда не выполняется.