PyCharm 2025.2 Help

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

找出问题的根源

还记得在 上一教程中,您已经创建并运行了 汽车 脚本吗? 让我们再多玩一会儿。

运行脚本 ,加速一次,然后通过在 运行 工具窗口中输入相应的命令刹车两次:

运行脚本

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

运行脚本

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

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

汽车的里程表设置在第 15 行,所以让我们在那里设置一个断点。 点击边距中的行号:

添加断点

接下来,点击边距中的 图标,位于 main 子句旁边,然后选择 调试 'car'

调试命令

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

调试工具窗口

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

检查变量的当前值

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

步过

现在点击 恢复 ),然后切换到 控制台 选项卡,在 调试 工具窗口中。 通过按 b ,然后按 Enter 来指示汽车刹车。 返回到 线程和变量 选项卡并检查变量。 请注意, 速度 此时为 0。

检查变量

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

检查变量的值

您可以看到, odometer 的值是 5,而 speed 的值是 -5。 这就是为什么当我们恢复执行时, odometer 将变为 0。 您可以点击工具栏上的 以确保它发生。

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

解决问题

为了避免再次遇到相同的问题,让我们更新 brakeCar ,以便它不会将 speed 减少到负值。

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

包围代码

选择 如果 以为语句添加条件。

PyCharm 创建了一个 if 构造的存根,留给您填写适当的内容。

用于用 if 语句包围的存根

输入 self.speed >= 5。 我们在代码中指定, brake 方法仅在 speed 大于或等于 5 时扣除 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年 9月 26日