第 1 部分。 调试 Python 代码
准备示例
您还记得 数学课上的二次方程求根公式 吗? 该公式也称为 A、B、C 公式,用于求解简单的二次方程: ax2 + bx + c = 0。 由于手动求解二次方程很快就会变得枯燥,让我们用脚本来代替。
将以下代码复制到项目中的一个文件中(不过建议手动输入这些代码):
正如您所见,这里有 main 子句。 这意味着执行将从它开始,允许您输入变量 a、 b 和 c 的期望值,然后进入方法 demo。
设置断点
要放置断点,只需点击您希望应用程序暂停的行旁边的标记栏:

有关详细信息,请参阅 断点。
启动调试会话
好了,现在我们已经添加了断点,一切都已准备就绪,可以开始调试了。
PyCharm 可通过多种方式 启动调试会话。 让我们选择一种方式:在标记栏中点击
,然后在打开的弹出菜单中选择命令 :

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

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

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

在 调试器选项卡的单步执行工具栏上,点击 (恢复程序(G)) 按钮以移动到下一个断点。
内联调试
在编辑器中,您可以在代码行旁边看到斜体文本:

这是什么意思?
这就是所谓的 内联调试的结果。 在这种情况下,它会显示 Solver 对象的地址以及您输入的变量 a、 b 和 c 的值。
内联调试可以 关闭。
请注意,您可以在调试会话过程中执行此操作!
让我们单步执行!
因此,您点击了 按钮,现在可以看到蓝色标记移动到了下一个断点。
如果使用 单步执行工具栏按钮 ,您将移动到下一行。 例如,点击 (步过(O) )按钮。 由于已启用内联调试,变量的值会在编辑器中以斜体显示。

现在在第 24 行(b = int(input("b: ")) )设置另一个断点,然后再次点击 。 新的循环开始。 在 调试控制台 中为
a 提供值。 调试器将在断点处暂停。
当 (步过(O) )按钮将程序执行到当前方法中的下一行时,
(步入(I) )按钮可让您查看当前行是如何执行的。
点击 (步入(I) )按钮,您会看到,在执行完
a = int(input("a: ")) 这一行后,调试器进入文件 parse.py :

如果您想专注于自己的代码,请使用 (步入我的代码 )按钮——这样就可以避免步入库类。
监视
PyCharm 允许您监视变量。 切换到 线程和变量 选项卡,并输入您要监视的变量名称。 请注意,可以使用代码补全:

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

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

您可以使用同一字段对表达式求值。
有关详细信息,请参阅 计算表达式。
更改十进制变量的格式
在 PyCharm 的调试器中,您可以以十六进制或二进制格式预览 int 变量。 当您调试包含二进制协议的网络脚本时,这可能特别有用。
要更改显示格式,请在 变量 列表中选择一个或多个 int 变量,右键点击,并从上下文菜单中选择 。

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

总结
本简短教程到此结束——恭喜! 让我们回顾一下您从中学到的内容:
您温习了有关断点的知识,并了解了如何设置断点。
您了解了如何开始调试会话,以及如何在调试控制台中显示 Python 提示符。
您温习了有关内联调试的知识。
您亲自尝试了单步执行、监视和表达式求值。
下一步适用于 PyCharm 专业版用户: 调试 Django 模板。