一、断点
断点是在特定点暂停程序执行的特殊标记,以便于检查程序状态和行为。断点可以很简单(例如,在到达某一行代码时挂起程序),也可以涉及更复杂的逻辑(检查其他条件、编写日志消息等)。 设置断点后,断点将保留在项目中,直到显式删除它(临时断点除外)。如果带有断点的文件在外部进行了修改,例如,通过 VCS 更新或在外部编辑器中进行了更改,并且行号已更改,则断点将相应地移动。注意,在进行此类更改时,PyCharm 必须处于运行状态,否则它们将被忽视。
1. 断点的类型
a. 行断点
在到达设置断点的代码行时挂起程序:可以在任何可执行代码行上设置这种类型的断点。
b. 异常断点
在抛出程序或其子类时挂起程序。在 PyCharm 中,您可以为 Python 异常设置断点。对于 PyCharm Professional,可以使用 Django、Jinja2、JavaScript 和 Jupyter 异常断点。它们全局应用于异常条件,不需要特定的源代码引用。Exception
2. 设置断点
a. 设置行断点
单击要设置断点的可执行代码行左侧行号位置:
b. 设置异常断点
- 压
Ctrl Shift F8
或选择“运行”|”从主菜单查看断点。 - 在“断点”对话框中,按AltInsert或单击 “添加”按钮,然后选择“Python 异常断点”或“JavaScript 异常断点”。
3. 管理断点
a. 删除断点
- 对于非异常断点:单击装订线中的断点。
- 对于所有断点:转到“运行”|”查看断点
Ctrl Shift F8
,选择断点,然后单击“删除”Delete
.
b. 将断点静音
如果一段时间内不需要在断点处停留,可以将其静音。这允许您在不离开调试器会话的情况下恢复正常的程序操作。之后,您可以取消静音断点并继续调试。
- 单击“调试”工具窗口工具栏中的“静音断点”按钮
二、调试功能
0. 测试代码
代码语言:javascript复制def calculate_sum(numbers):
total = 0
for num in numbers:
total = num
# 在这里设置一个断点,以便在每次迭代时停止
# 观察变量的值
print(f'Current total: {total}')
return total
if __name__ == "__main__":
# 创建一个数字列表
my_numbers = [1, 2, 3, 4, 5]
# 调用计算总和的函数
result = calculate_sum(my_numbers)
# 打印最终结果
print(f'The sum of the numbers is: {result}')
1. 设置断点
在你想要观察变量值的位置设置断点。比如,我们设置一个断点在print(f'Current total: {total}')
行上。
- 在行号左侧单击,将在该行设置一个红色的断点。
2. 调试的多种启动方式
- 快捷键:
Shift F9
(Fn Shift F9
) - 点击下图“绿色小虫子”按钮
- 鼠标右键点击下图“调试”
- 点击菜单栏
运行
——调试
3. 观察调试控制台
上述操作完成后,PyCharm 将开始运行代码,当执行到断点时,会在调试控制台中停下。在这里,你可以查看当前的变量值和代码状态,以及其他调试操作。
a. 步过
- Step Over (F8): 执行当前行,如果当前行是一个函数,则不会进入函数内部。
步过
右侧各图标依次如下,下面将不再截图介绍
b. 步入
- Step Into (F7): 进入函数内部执行,如果当前行不是一个函数调用,则表现和 Step Over 一样。
c. 单步执行代码
d. 步出
- Step Out (Shift F8): 执行完当前函数的剩余部分,并停在调用该函数的地方。
e. 运行到光标处
- Continue (F9): 继续执行程序,直到下一个断点或者程序结束。
f. 重新启动程序
- Restart (Ctrl F5): 重新启动程序。(左侧最上方"绿色回旋")
g. 停止调试
- Stop (Ctrl F2): 停止调试。(左侧中间"红色方框")
三、高级调试功能
PyCharm 还提供了一些高级调试功能,比如条件断点、异常断点、远程调试等,具体有待进一步完善~