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

Pygame Zero代码报错:第15行if语句后缺少缩进块

报错原因

Python是强制缩进语法的语言,if、else、def这类需要挂载代码块的语句,其下属的执行逻辑必须比语句本身多一层统一缩进(标准规范为4个空格),解释器才能识别代码块的从属关系。
你的代码中if apple.collidepoint(pos):语句下的print("Good Shot!")、place_apple()两行逻辑没有做缩进处理,解释器找不到if语句对应的执行块,同时未缩进的代码后直接接else语句会产生语法冲突,因此抛出该缩进错误。
另外你代码里的//Importing是C/Java系语言的注释写法,Python不支持这种注释格式,直接写也会触发语法错误,Python的单行注释需要以#开头。

修复方案

将if分支下需要执行的两行代码统一增加一层缩进,和else分支下的执行代码保持相同缩进层级;修正错误的注释格式;补全游戏启动必要的初始化逻辑即可。

修复后可运行完整代码
# 导入依赖
from random import randint
import pgzrun

# 初始化苹果角色
apple = Actor("apple")

def draw():
    screen.clear()
    apple.draw()

def place_apple():
    # 随机生成苹果坐标
    apple.x = randint(10, 800)
    apple.y = randint(10, 600)

def on_mouse_down(pos):
    if apple.collidepoint(pos):
        # 命中苹果时的逻辑,属于if块必须缩进
        print("Good Shot!")
        place_apple()
    else:
        # 未命中苹果时的逻辑,属于else块必须缩进
        print("You Missed!")
        quit()

# 游戏启动时先放置第一个苹果
place_apple()
# 启动游戏主循环,Mu编辑器的Pygame Zero模式下可省略该行
pgzrun.go()
注意事项
  • 编写Python代码时全文件缩进规则要统一,不要混用Tab和空格,否则很容易触发缩进相关报错
  • 提前将苹果图片素材命名为apple.png,放在和代码文件同级的目录下,否则会出现资源加载错误
  • 如果使用Mu编辑器的Pygame Zero专属运行模式,可以删掉代码里的import pgzrun和pgzrun.go()两行,编辑器会自动处理启动逻辑

内容的提问来源于stack exchange,提问作者win10 kimo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 21:24:56