[英]Why I get the error: list index out of range
def sum13(nums):
summ = 0
for i in range(1, len(nums)):
if nums[i] != 13 and nums[i-1] != 13:
summ += nums[i]
if nums[0] != 13:
summ += nums[0]
return summ
错误是由最后一个if
产生的,我不明白为什么
这意味着len(nums) == 0
。 尝试类似的东西
if nums and nums[0] != 13:
如果您使用 Python enumerate
而不是循环计数器来跟踪您在数组中的位置,您可以将代码简化为具有单个if
语句,并在列表长度为零时消除错误:
def sum13(nums):
summ = 0
for ix, num in enumerate(nums):
if ix == 0 or (num != 13 and nums[ix-1] != 13):
summ += num
return summ
当nums
为空时, for
循环根本不会执行。
因为 Python 在if
语句的计算中使用了“提前终止”,这意味着一旦检测到ix == 0
为 True,当ix
为 0 时,它不会计算nums[ix-1]
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.