You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pygame中出现IndexError: list index out of range错误求助

解决Pygame蛇形游戏中的IndexError问题

我一眼就瞅到问题所在啦——你代码里藏了个超容易忽略的笔误!

错误根源

看你定义蛇身的这行代码:

self.body=[[100,50], [90.50], [80,50]]

第二个蛇身坐标里的逗号被写成小数点了!原本应该是[90, 50],结果写成了[90.50],这直接导致这个蛇身段的坐标变成了一个只有单个元素的列表。当代码执行到pygame.Rect(pos[0], pos[1], 10,10)时,尝试访问pos[1],但这个列表只有索引0,自然就抛出了IndexError: list index out of range。

为啥教程里的代码能正常跑?人家写的是逗号呀,你对着看的时候可能没注意到这个细节差异~

修正后的代码

只需要把小数点换回逗号就行,修改后的完整代码如下:

class Snake: 
    def __init__(self): 
        self.position = [50, 50] 
        self.body = [[100, 50], [90, 50], [80, 50]]  # 这里把.换成了,
        self.direction = "RIGHT" 
        self.changeDirectionTo = self.direction 
    def getBody(self): 
        return self.body 

window = pygame.display.set_mode((500, 500)) 
snake = Snake() 
while True: 
    for pos in snake.getBody(): 
        pygame.draw.rect(window, pygame.Color(0, 225, 0), pygame.Rect(pos[0], pos[1], 10, 10))

小技巧

下次遇到类似的索引错误,可以先在循环里加一句print(pos),把每个要处理的元素打印出来,就能快速定位到格式异常的元素啦,比盯着代码瞎找高效多了!

内容的提问来源于stack exchange,提问作者Naya Keto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:54:13