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

有关更多信息,请参阅 断点。
启动调试会话
好了,现在我们已经添加了断点,一切都准备好进行调试了。
PyCharm 允许 以多种方式启动调试会话。 让我们选择一种:点击边距中的
,然后在打开的弹出菜单中选择命令 :

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

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

顺便说一下,当程序暂停时,您可以在 调试控制台 中输入 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 模板。