告别 `print()`!用 VS Code 调试器高效定位 Bug

简介: 本文手把手教你用VS Code调试器替代低效`print`:5步定位“越打折越贵”Bug,零代码侵入、实时查变量、支持条件断点与表达式监视。免费、高效、安全——调试本该如此简单!

“我加了 8 个 print,结果忘了删第 3 个……现在生产日志全是 ‘DEBUG: foo=42’。”
—— 某位刚被 SRE 叫去喝茶的开发者

你是不是也这样调试代码?

print("subtotal:", subtotal)
print("discount:", discount)
print("total before return:", total)

print 调试简单、直接、可靠——但效率低、易遗漏、污染代码
尤其当你需要:

  • 查看循环中每一步的变量
  • 跟踪函数调用栈
  • 修改临时值测试逻辑

这时候,是时候升级你的武器库了:VS Code 内置调试器,免费、强大、零侵入!

今天,我们就用一个真实 Bug,手把手教你从 “print 新手” 进阶到 “调试高手”。


🐛 场景重现:一个“越打折越贵”的订单系统

假设你写了这样一个 Python 函数:

def calc_total(orders, discount):
    subtotal = 0
    for o in orders:
        subtotal += o.price * o.qty
    # ❌ 错误:用了 + 而不是 -
    total = int(subtotal * (1 + discount))  # 应该是 (1 - discount)!
    return total

预期:打 9 折(discount=0.1),总金额应为 1431
实际输出:1749 —— 居然涨价了?!

print 调试?可以,但麻烦。
用 VS Code 调试器?5 秒定位问题


🛠️ 第一步:安装 Python 扩展(只需一次)

  1. 打开 VS Code
  2. 点击左侧 Extensions(扩展) 图标(或按 Ctrl+Shift+X
  3. 搜索 “Python”,安装由 Microsoft 官方发布的插件

image.png

✅ 安装后,VS Code 自动支持断点、变量查看、单步执行等调试功能。

配置解释器
在这里插入图片描述


📍 第二步:设置断点(点击一下就行)

在你想“暂停检查”的代码行左侧 点击空白处,会出现一个红点 —— 这就是断点(Breakpoint)

我们在这两行设断点:

  • subtotal += o.price * o.qty
  • total = int(subtotal * (1 + discount))

image.png

💡 小技巧:按住 Ctrl(Windows/Linux)或 Cmd(Mac)可快速添加/删除断点。


▶️ 第三步:启动调试器

  1. 点击左侧 Run and Debug 图标(虫子图标 🐞)
  2. 点击 “Run and Debug” 按钮
  3. 首次使用会提示选择环境,选 “Python File”

image.png

程序会在第一个断点处自动暂停!


🔍 第四步:查看变量 & 单步执行

当程序暂停时,左侧会显示 Variables(变量)面板

  • orders: 当前订单列表
  • subtotal: 循环累加后的金额(1590)
  • discount: 0.1

继续点击 Step Over(F10),执行下一行:

total = int(subtotal * (1 + discount))

计算过程一目了然:

1590 * (1 + 0.1) = 1590 * 1.1 = 1749

🎯 Bug 根源暴露:应该是 (1 - discount),不是 (1 + discount)

image.png


条件断点

右击断点,选择Expression,填写表达式

image.png

image.png


查看表达式的值

vscode 提供了一个watch功能,可以方便查看一个表达式的值

image.png

image.png


✅ 第五步:修复并验证

修改代码:

# 修复:减去折扣
total = int(subtotal * (1 - discount))

重新运行,输出:

TOTAL: 1431

完美!


🧠 为什么调试器比 print 更强?

对比项 print 调试 VS Code 调试器
代码侵入 需要写/删代码 零修改
变量查看 只能看指定值 所有变量实时可见
控制流 无法暂停 可暂停、单步、跳入函数
条件调试 难实现 支持 条件断点
生产安全 容易漏删 完全无残留

就像从用手电筒找钥匙,升级到用热成像仪——效率不是一个量级。


🎯 总结:调试器不是“高级功能”,而是“基础技能”

print 调试适合 5 行脚本,但现代开发需要更高效的工具
VS Code 调试器:

  • 免费、内置、开箱即用
  • 支持 Python、Go、JavaScript、Rust 等几乎所有语言
  • 让你 看得清、控得住、改得快

下次遇到诡异 Bug,别再狂加 print 了——
点个断点,让代码自己说话。

Happy Debugging! 🐞✨


相关文章
|
JavaScript 前端开发 数据处理
vue2、vue3中使用$forceUpdate()
vue2、vue3中使用$forceUpdate()
3227 0
|
5月前
|
人工智能 运维 安全
2026年OpenClaw(Clawdbot)极速部署与OpenClaw Skills生态运维指南
2026年,开源AI智能体技术进入爆发期,OpenClaw(原Clawdbot、Moltbot)凭借“本地优先、全链路可执行、技能生态丰富”的核心特性,成为个人与轻量团队实现自动化办公的首选工具。它彻底打破了传统AI“只会对话不会执行”的局限,通过标准化的Skills(技能)体系,能够像人类一样调用工具、处理文件、对接系统,完成从内容总结到跨平台推送的全流程任务。
478 10
|
8月前
VisioViewer64bit_zh-cn.exe 官方安装步骤64位中文版(附安装包)
VisioViewer64bit_zh-cn.exe 是微软官方推出的64位中文版Visio文件查看器,支持.vsdx、.vsd等格式。无需安装完整版Visio,即可快速查看绘图文件。下载安装后,可通过双击文件或右键选择打开,方便实用。
1814 110
|
5月前
|
Oracle Java 关系型数据库
JDK 21安装教程 Windows版详细步骤+环境变量验证(含java/javac/java -version检测)
JDK(Java SE Development Kit)是Oracle官方提供的Java标准版开发工具包,包含编译器(javac)、运行环境(JRE)及核心类库等,用于Java程序的开发、编译、调试与运行。本文详解JDK 21在Windows下的下载、安装与验证步骤,助力新手快速搭建开发环境。(239字)
3004 114
|
18天前
|
人工智能 API C++
OpenCode vs Claude Code:一文看懂两者的核心区别与选型建议
本文深度解析2026年两大主流AI编程工具——闭源旗舰Claude Code与开源标杆OpenCode的本质差异:非模型之争,而是“极致体验”与“绝对自由”的产品哲学分野,助开发者精准选型。
|
5月前
|
编译器 Linux 数据安全/隐私保护
Kylin V10 安装 compat-gcc-44-4.4.7-8.el7.x86_64.rpm 详细步骤
本指南教你如何在银河麒麟V10(x86_64架构)系统上安装compat-gcc-44编译器。含系统确认、RPM包定位、推荐使用dnf/yum自动解决依赖安装,及安装后验证步骤,操作简洁可靠。(239字)
|
5月前
|
运维 安全 前端开发
Go slog 日志打印最佳实践指南
Go 1.21 引入的 `log/slog` 提供原生结构化日志能力,围绕 Logger、Handler、Record 三大核心设计。本文详解其最佳实践:类型安全属性、linter 规范、分级日志、上下文传递、敏感信息脱敏、性能优化及自定义 Handler 等,助你构建高效可靠的可观测性日志系统。(239字)
268 4
|
5月前
|
IDE API 数据库
FastAPI + SQLModel 实战:标准项目结构下,一个模型搞定数据库与 API
SQLModel 实现“一模型双用”:单个类同时作为数据库表与 Pydantic API 模型,天然支持字段校验、类型提示、OpenAPI 文档生成,彻底消除重复定义,提升开发效率与一致性。(239字)
642 4
|
5月前
|
人工智能 开发框架 数据可视化
谷歌推出新一代AI开发框架Genkit: Go 入门指南:用 Go 轻松构建 AI 应用
Genkit 是 Google Firebase 推出的开源 AI 应用框架,支持 Go、JS、Python。Genkit Go 为纯 Go 实现,统一接入 Gemini/OpenAI/Vertex AI,内置可视化调试、类型安全结构化生成,专为生产环境设计,5 分钟即可启动首个 AI 应用。
800 3
|
8月前
|
人工智能 安全 API
FastMCP 入门:用 Python 快速搭建 MCP 服务器接入 LLM
MCP协议为大语言模型连接外部工具与数据提供标准化方案,FastMCP是其Python最佳实践框架。本文详解MCP核心概念,演示如何用FastMCP快速搭建支持工具调用、资源访问与身份认证的MCP服务器,并集成至LLM应用,实现AI智能体与真实世界的高效交互。
2676 2
FastMCP 入门:用 Python 快速搭建 MCP 服务器接入 LLM