PyCharm调试教程:单步执行代码快速入门
时间:2026-08-14 | 作者:实验室老王 | 阅读:0在 PyCharm 里打断点很直接:点击行号左侧的灰色区域,出现红点就表示断点已设好。不过要注意,断点只会对可执行语句生效。
真正开始调试时,得右键选择“Debug 'xxx.py'”,或者直接按 Shift+F9(Win/Linux)/D(macOS)。如果点的是运行按钮,那走的就不是调试流程。
进入调试状态后,通常用 F7(步入)、F8(步过)、F9(继续到断点)来控制程序的执行节奏。
怎么在PyCharm里打断点并启动Debug模式
在 PyCharm 里,调试真正的入口并不是运行按钮,而是左侧编辑区的边缘位置。
把鼠标移到行号左边那块灰色空白区域,点一下,出现一个红点,这个位置就是断点。
断点只会对可执行语句生效,比如 print()、if、函数调用这一类代码行;像变量赋值语句(例如 a = 1)通常也可以设置,不过在某些优化场景下,确实有可能被直接跳过。
启动调试必须用右键菜单或快捷键:右键 → Debug 'xxx.py',或者按 Shift + F9(Windows/Linux)/ D(macOS)。别误点绿色三角形“Run”,那不会进入调试器。
- 断点默认是“Suspend thread”,即暂停当前线程,不影响其他线程(适合多线程调试)
- 如果想让所有断点都暂停整个进程,需右键断点 → Edit Breakpoint → 勾选
Suspend all - 临时禁用断点:Ctrl+左键点击红点,变成浅红色圆圈;再次点击恢复
单步执行时F7/F8/F9各走哪一步
进入Debug模式后,顶部会出现控制条,但更常用的是快捷键。
它们的区别不在“快慢”,而在“是否进入函数内部”。
F8(Step Over):执行当前行,不进入函数体。比如遇到result = calculate(x),按F8会直接跑到下一行,calculate()内部逻辑被跳过F7(Step Into):强制进入当前行调用的函数。上例中按F7会跳进calculate()的第一行。但如果该函数是内置函数(如len()、print()),PyCharm默认不进去,需提前在设置里勾选Settings → Build → Debugger → Step into my code only关掉F9(Resume Program):直接运行到下一个断点,或程序结束。不是“继续一行”,而是“继续到断点”
容易混淆的是:按一次F7不一定只进一层。
如果当前行有多个函数调用(如 f(g(x))),F7会先进入最外层 f();想进 g(),得先F8跳过 f(),再在 g(x) 行按F7。
为什么变量值没显示 / Watch窗口里加了表达式却报错
Debug过程中,变量面板(Variables)默认只显示当前栈帧的局部变量和全局变量,不自动展开嵌套对象或属性。
很多时候并不是数据丢了,而是没有手动展开查看。
- 字典、列表、自定义对象默认折叠,要点击右侧小箭头才能展开看内容
- 想实时观察某个表达式(如
len(my_list) > 5),不能直接写进Variables面板,得右键 →Add to Watches,或在Watches窗口底部点+号输入 - Watches里写的表达式必须能在当前作用域求值。比如在函数内调试时,写
os.getcwd()没问题,但写nonexistent_var就会显示Unresolved reference - 注意:Watches里的表达式支持简单运算和函数调用,但不支持赋值语句(
x = 1会报语法错误)
调试Flask/Django等Web服务时怎么不卡住浏览器
Web框架默认启用多线程或多进程(如Flask的 debug=True 自带重载+多线程),会导致断点一停,整个服务无响应,刷新页面就超时。
这不是PyCharm的问题,而是调试器和框架线程模型冲突。
- Flask:启动Debug前,在代码里显式关闭重载和多线程:
app.run(debug=True, use_reloader=False, threaded=False) - Django:运行配置里勾选
Run with Python Console无效;正确做法是在Run Configuration → Environment variables 中添加DEBUG=True,并在manage.py runserver后加参数--nothreading --noreload - 更稳妥的方式:用PyCharm内置的Python Console启动服务,而不是直接Debug脚本——右键
manage.py→Debug,然后在Console里手动输runserver --nothreading --noreload
断点设在视图函数里才有效;路由分发、中间件、模板渲染这些环节,得在对应源码位置设断点,光在views.py里断不够。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 主流编程软件推荐:VS Code、PyCharm与Eclipse对比及选择指南
- 时间:2026-09-01
-
- PyCharm内存快照生成操作步骤详解
- 时间:2026-08-22
-
- PyCharm 2018.1最新版汉化包免费下载安装使用详细教程
- 时间:2026-08-19
-
- PyCharm安装后如何运行第一个Python程序
- 时间:2026-08-17
-
- PyCharm如何隐藏项目目录中的.idea文件夹
- 时间:2026-08-16
-
- PyCharm快速查找文件的方法与快捷键技巧
- 时间:2026-08-15
-
- PyCharm中如何配置Python虚拟环境venv教程
- 时间:2026-08-15
-
- PyCharm中配置Conda解释器的详细步骤教程
- 时间:2026-08-14
精选合集
更多大家都在玩
大家都在看
更多-
- 糖尿病完全不能吃糖吗
- 时间:2026-09-15
-
- 蚂蚁庄园小课堂2026年9月16日最新题目答案
- 时间:2026-09-15
-
- 小鸡答题今天的答案是什么2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园每日答题答案2026年9月16日
- 时间:2026-09-15
-
- 以下哪种粮食是酿造绍兴黄酒的主要原料 蚂蚁庄园今日答案9月16日
- 时间:2026-09-15
-
- 劝学名句“及时当勉励,岁月不待人”出自哪位诗人 蚂蚁庄园今日答案9.16
- 时间:2026-09-15
-
- 蚂蚁庄园今天答题答案2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园答题今日答案2026年9月16日
- 时间:2026-09-15
