首页 > 解决方案 > 索引错误,表示索引超出范围

问题描述

我正在尝试返回数组中数字的总和,为空数组返回 0。除了数字 13 和 13 之后的数字之外,它不计算在内。

def sum13(nums):
  p = 0
  for i in range(len(nums)):
    if nums[i] == 13 and nums[i + 1]:
      continue
    p += nums[i]
  return p

当我运行它时,它给了我一个索引错误列表索引我们的范围,我做错了什么?

标签: pythonpython-3.x

解决方案


这是你想要的:

def sum13(nums):
    p = 0
    skip_next = False
    for i in range(len(nums)):
        if nums[i] == 13:
           skip_next = True
           continue
        if skip_next:
            skip_next = False
            continue
        p += nums[i]
    return p

推荐阅读