Python 为什么此代码返回';弹出索引超出范围';?

Python 为什么此代码返回';弹出索引超出范围';?,python,Python,我试图理解导致这种情况的逻辑和过程,但仍然不理解为什么会发生这种情况。如果这是一个非常简单/糟糕的问题,那么很抱歉 这就是问题所在: pop index out of range 返回数组中数字的总和,但忽略以6开头并延伸到下一个7的数字部分除外(每6后面至少有一个7)。返回0表示没有数字 这是错误代码: pop index out of range def sum67(nums): ans=0 如果len(nums)==0: 返回0 elif 6不在nums中: 对于以nums表示的val

我试图理解导致这种情况的逻辑和过程,但仍然不理解为什么会发生这种情况。如果这是一个非常简单/糟糕的问题,那么很抱歉

这就是问题所在:

pop index out of range
返回数组中数字的总和,但忽略以6开头并延伸到下一个7的数字部分除外(每6后面至少有一个7)。返回0表示没有数字

这是错误代码:

pop index out of range
def sum67(nums):
ans=0
如果len(nums)==0:
返回0
elif 6不在nums中:
对于以nums表示的val:
ans+=val
返回ans
以nums表示的elif 6:
x=单位索引(6)
y=单位指数(7,x)
对于范围(x,y)内的i:
流行音乐(一)
对于以nums表示的val:
ans+=val
返回ans
这是错误:

pop index out of range

呜呼!我刚刚了解了
del
功能

我的解决方案是替换:

elif 6 in nums:
  x = nums.index(6)
  y = nums.index(7, x)
  for i in range(x, y):
    nums.pop(i)` 
与:


您在迭代时从列表中弹出/删除元素,这最终会导致错误,因为您从一开始就期望的索引在第二次迭代后不再有效。我们很高兴您在这里,我们需要可以为您调试的代码。无法执行您提供的屏幕截图。为了将来参考,您的问题很可能已关闭,因为您将代码作为图像而不是文本发布。很抱歉,学习将帮助您解决此问题和许多其他问题。感谢所有人的帮助,尤其是@NewPythonUser!