PyCharm 2025.3 Help

调试您的第一个 Python 应用程序

找出问题的根源

请记住,在 上一教程 中,您已创建并运行了 Car 脚本? 让我们再多试一试它。

运行脚本 ,然后在 运行 工具窗口中输入相应的命令,使汽车加速一次,再制动两次:

运行脚本

现在先按 o ,再按 Enter ,以显示汽车的里程表:

运行脚本

脚本告诉我们,这辆车行驶了 0 公里! 这是一个出乎意料的结果,因为我们已经踩了一次油门,因此汽车应该行驶了一段距离。 让我们调试代码以找出其中的原因。

要开始调试,您必须先设置一个 断点。 调试器将在执行带有断点的那一行之前停止,您就可以检查程序的当前状态。

汽车的里程表在第 15 行设置,所以我们在那里设置一个断点。 点击装订区域中的行号:

添加断点

接下来,在装订区域中点击 图标,该图标位于 main 子句旁边,然后选择 调试 'car'

调试命令

PyCharm 启动调试会话并显示 调试工具窗口

调试工具窗口

先按 a ,再按 Enter ,使汽车加速。 调试器将执行脚本并在断点处停止。 将打开 调试 工具窗口的 线程和变量 选项卡。 展开 self 以检查变量的当前值:

检查变量的当前值

在调试器工具栏上点击 步过(O) ),以执行包含断点的那一行。 请注意, odometer 的值变为 5,并且编辑器中的第 16 行现已高亮显示,因为下一步将执行它:

单步跳过

现在点击 恢复 ),并在 调试 工具窗口中切换到 控制台 选项卡。 通过先按 b ,再按 Enter ,让汽车制动。 返回 线程和变量 选项卡并检查变量。 请注意, speed 此时为 0。

检查变量

点击 并再次制动(b + Enter)。 现在,切换到 线程和变量 选项卡,分析接下来会发生什么:

检查变量的值

您可以看到, odometer 的值为 5, speed 的值为 -5。 因此,当我们恢复执行时, odometer 将变为 0。 您可以在工具栏上点击 来确认确实如此。

因此,出现意外结果的原因是 speed 变量为负值。

修复问题

为避免再次遇到相同问题,让我们更新 Carbrake ,使其不会将 speed 降至负值。

brake 方法中选择语句 self.speed -= 5 ,然后按 Ctrl+Alt+T代码 | 用…包围):

环绕代码

选择 if ,为该语句添加条件。

PyCharm 会创建一个存根 if 结构,留给您来填充适当的内容。

用于 if 语句环绕的存根

输入 self.speed >= 5。 我们在代码中指定, brake 方法应仅在其大于或等于 5 时,从 speed 中减去 5:

在方法中指定条件

速度低于 5 时怎么办? 在现实生活中,当您刹一辆缓慢行驶的汽车时,它会直接停下。 让我们在代码中加以规定。

brake 方法的最后一行之后添加一行,然后开始键入 el...。 PyCharm 建议您插入 else。 按下 Enter 将其插入,缩进会自动修正:

自动补全 else

现在添加 self.speed = 0 ,指定汽车应停止。 以下是 brake 方法的更新代码:

def brake(self): if self.speed >= 5: self.speed -= 5 else: self.speed = 0

让我们再次 运行 ,检查是否已经修复了问题。 让汽车加速,然后制动两次,并检查里程表:

修复问题后运行脚本

现在我们得到了预期且正确的结果。

详细调试

调试工具窗口包含用于 变量监视的专用窗格,以及用于显示所有输入与输出信息的 控制台 选项卡。 如果希望控制台始终可见,您可以将其拖动到 PyCharm 窗口的某个边缘。

单步执行

如果希望逐行查看代码的执行情况,无需在每一行都设置断点,您可以对代码进行单步执行。

让我们看看如何对示例程序进行单步执行。 使用窗口顶部的 运行 小部件启动或重新启动调试器:

重新启动调试器

在打开的调试器控制台中,按 a 使汽车加速。 调试器将在断点处停止。

我们可以使用 步进工具栏按钮来选择下一步要停在哪一行。

步进工具栏

例如,点击 步过(O) 按钮 ,可以看到蓝色标记移动到下一行代码:

在调试期间单步跳过

持续点击 ,直到到达 action = input("What should I do? [A]ccelerate, [B]rake, " "show [O]dometer, or show average [S]peed?").upper()

现在,如果您点击 步入(I) 按钮 单步进入图标 ,您会看到调试器进入文件 parse.py

在调试期间单步进入

但是,如果继续使用 单步跳过图标 ,您会看到应用程序直接继续到下一个循环:

调试:继续到下一个循环

如果希望专注于自己的代码,请使用 步入我的代码 按钮 进入我的代码。 这样就可以避免单步进入库类。

有关详细信息,请参阅 步进工具栏逐步执行程序

监视

PyCharm 允许您监视任意变量。 只需在 线程和变量 选项卡上工具栏下方的 计算表达式或添加监视 字段中键入您想要监视的变量名称。 例如, my_car.time。 请注意,这里提供代码补全功能。 然后点击字段右侧边缘的 添加按钮

监视表达式补全

然后转到 控制台 选项卡,输入任意命令,例如 b

返回 线程和变量 选项卡时,您将看到 my_car.time 的当前值:

在调试工具窗口中监视变量

有关更多信息,请参阅 监视

内联调试

您可能已经注意到 PyCharm 的另一项功能,它可以让您轻松了解代码在做什么: 内联调试器。 只要命中任意断点,PyCharm 会在编辑器中直接显示许多变量的值:

内联调试

内联调试 功能默认启用。 如果您未看到内联调试的值,请检查在调试器设置中是否已启用该功能。 在调试器工具栏上点击 ,并选择 调试器设置。 请确保已启用 在编辑器中显示变量值

内联显示值

总结

就这样,您完成了! 恭喜您! 让我们借助 PyCharm 回顾一下您完成的操作:

  • 找出问题的根源

  • 设置断点

  • 单步执行您的程序

  • 创建监视

  • 计算表达式

最后修改日期: 2025年 12月 2日