PyCharm 2025.3 Help

第 1 部分。 调试 Python 代码

准备示例

您还记得 数学课上的二次方程求根公式 吗? 该公式也称为 A、B、C 公式,用于求解简单的二次方程: ax2 + bx + c = 0。 由于手动求解二次方程很快就会变得枯燥,让我们用脚本来代替。

将以下代码复制到项目中的一个文件中(不过建议手动输入这些代码):

import math class Solver: def demo(self, a, b, c): d = b ** 2 - 4 * a * c if d > 0: disc = math.sqrt(d) root1 = (-b + disc) / (2 * a) root2 = (-b - disc) / (2 * a) return root1, root2 elif d == 0: return -b / (2 * a) else: return "This equation has no roots" if __name__ == '__main__': solver = Solver() while True: a = int(input("a: ")) b = int(input("b: ")) c = int(input("c: ")) result = solver.demo(a, b, c) print(result)

正如您所见,这里有 main 子句。 这意味着执行将从它开始,允许您输入变量 abc 的期望值,然后进入方法 demo

设置断点

要放置断点,只需点击您希望应用程序暂停的行旁边的标记栏:

添加断点

有关详细信息,请参阅 断点

启动调试会话

好了,现在我们已经添加了断点,一切都已准备就绪,可以开始调试了。

PyCharm 可通过多种方式 启动调试会话。 让我们选择一种方式:在标记栏中点击 运行 ,然后在打开的弹出菜单中选择命令 调试 'solver'

调试 Python 脚本

调试器启动,显示调试工具窗口中的 控制台选项卡 ,并允许您输入所需的值:

调试控制台

调试器会在第 1 个断点处暂停程序。 这意味着带有断点的那一行尚未执行。 该行将变为蓝色:

调试在第 1 个断点处停止

顺便说一句,程序暂停时,您可以在 调试控制台 中输入 Python 命令:

在调试控制台中使用 Python 提示符

调试器选项卡的单步执行工具栏上,点击 恢复程序 (恢复程序(G)) 按钮以移动到下一个断点。

内联调试

在编辑器中,您可以在代码行旁边看到斜体文本:

内联调试

这是什么意思?

这就是所谓的 内联调试的结果。 在这种情况下,它会显示 Solver 对象的地址以及您输入的变量 abc 的值。

内联调试可以 关闭

请注意,您可以在调试会话过程中执行此操作!

让我们单步执行!

因此,您点击了 恢复程序 按钮,现在可以看到蓝色标记移动到了下一个断点。

如果使用 单步执行工具栏按钮 ,您将移动到下一行。 例如,点击 步过步过(O) )按钮。 由于已启用内联调试,变量的值会在编辑器中以斜体显示。

步入

现在在第 24 行(b = int(input("b: ")) )设置另一个断点,然后再次点击 恢复程序。 新的循环开始。 在 调试控制台 中为 a 提供值。 调试器将在断点处暂停。

步过步过(O) )按钮将程序执行到当前方法中的下一行时, 步入步入(I) )按钮可让您查看当前行是如何执行的。

点击 步入步入(I) )按钮,您会看到,在执行完 a = int(input("a: ")) 这一行后,调试器进入文件 parse.py

步入

如果您想专注于自己的代码,请使用 步入按钮步入我的代码 )按钮——这样就可以避免步入库类。

监视

PyCharm 允许您监视变量。 切换到 线程和变量 选项卡,并输入您要监视的变量名称。 请注意,可以使用代码补全:

添加新监视

起初,您会看到一个错误——这意味着该变量尚未定义:

添加监视后出错

不过,当程序执行进入定义该变量的作用域时,监视将显示如下视图:

正确添加监视

您可以使用同一字段对表达式求值。

有关详细信息,请参阅 计算表达式

更改十进制变量的格式

在 PyCharm 的调试器中,您可以以十六进制或二进制格式预览 int 变量。 当您调试包含二进制协议的网络脚本时,这可能特别有用。

要更改显示格式,请在 变量 列表中选择一个或多个 int 变量,右键点击,并从上下文菜单中选择 显示为 | 十六进制

用于以十六进制格式预览十进制值的上下文菜单

变量的格式将在变量列表和编辑器中同时更改。

调试变量的十六进制表示

总结

本简短教程到此结束——恭喜! 让我们回顾一下您从中学到的内容:

  • 您温习了有关断点的知识,并了解了如何设置断点。

  • 您了解了如何开始调试会话,以及如何在调试控制台中显示 Python 提示符。

  • 您温习了有关内联调试的知识。

  • 您亲自尝试了单步执行、监视和表达式求值。

下一步适用于 PyCharm 专业版用户: 调试 Django 模板

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