老张在家写个简单的Python爬虫,抓天气数据,结果运行到一半就卡住——不报错,也不出结果。他翻了三遍代码,还是没看出哪行出了问题。后来邻居小李教他用断点加单步执行,两分钟就揪出是requests.get()那行超时没设timeout参数。
什么是断点?什么是单步执行?
断点就像在代码里插个书签,运行到这里自动暂停;单步执行就是按一下键盘(比如F8),让程序只跑当前这一行,再停住。两者一配合,等于把程序变成慢动作回放,哪行变量变了、哪次循环跳错了,全看得清清楚楚。
居家常用场景,不用装复杂工具
你用VS Code写个Excel自动整理脚本,或者用PyCharm跑个家庭记账小工具,都不用学专业调试术语。打开编辑器左侧行号边点一下,出现红点就是断点;按F5运行,程序停在红点那行;再按F8,光标往下跳一行,变量窗口里数值跟着实时刷新。
举个真实例子:
你写了段读取家谱CSV文件的代码:
import csv
with open('family.csv', 'r', encoding='utf-8') as f:
reader = csv.DictReader(f)
for row in reader:
print(row['name'], row['age']) # ←在这行左边点一下设断点运行后程序停住,鼠标悬停在row上,能看到当前这行的具体内容:{'name': '奶奶', 'age': '76'};再按一次F8,进入下一轮循环,发现下一行row居然是空字典——原来CSV最后一行多了个空行。问题立马定位。
手机App开发也能用上
家里孩子学用Thunkable做简易备忘录App,逻辑总在保存按钮点击后失效。在“保存”事件块里插入断点(平台支持的话),再点按钮,就能看到每次点击时变量text_input.Text的值有没有传进来,是不是被意外清空了。不用反复打包安装,省下半小时。
小提醒:别堆太多断点
就像炒菜时盐不是越多越好,断点也一样。设三四个关键位置就够了——比如数据加载完、计算前、输出前。太多反而容易看花眼,还可能漏掉中间某次异常跳转。