单步执行与断点结合:在家调试小程序的实用小技巧

老张在家写个简单的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的值有没有传进来,是不是被意外清空了。不用反复打包安装,省下半小时。

小提醒:别堆太多断点

就像炒菜时盐不是越多越好,断点也一样。设三四个关键位置就够了——比如数据加载完、计算前、输出前。太多反而容易看花眼,还可能漏掉中间某次异常跳转。