在 VSCode 调试时,有多种方法可以查看和打印变量的内容

在 VSCode 调试时,有多种方法可以查看和打印变量的内容:

1. 鼠标悬停查看(最直接)

将鼠标悬停在变量名上,会弹出变量的当前值。

2. 使用"监视"窗口(推荐)

添加要监视的变量:

  • 在左侧 运行和调试 面板 → 监视 区域
  • 点击 + 号,输入变量名,如 my_variable
  • 可以输入表达式,如 len(data)arr[0]

3. 使用"调试控制台"实时计算

在断点暂停时,使用底部的 调试控制台 (Debug Console):

python 复制代码
# 直接输入变量名查看
my_variable

# 打印表达式
len(my_list)

# 调用方法
my_dict.keys()

# 计算复杂表达式
[f"Item {i}: {x}" for i, x in enumerate(my_list)]

4. 使用"变量"窗口

左侧面板的 变量 (VARIABLES) 区域会显示:

  • 局部变量 (Local):当前作用域的所有变量
  • 全局变量 (Global)
  • 可以展开列表、字典、对象查看内部结构

5. 在代码中临时打印

在调试时临时添加打印语句:

python 复制代码
# 在断点附近添加临时打印
print(f"变量值: {my_variable}")  # 会输出到调试控制台
import pdb; pdb.set_trace()  # 或使用 pdb

6. 条件断点 + 日志点(Logpoint)

不停止程序,只打印变量:

方法 A - 日志点 (Logpoint)

  • 右键点击断点 → 编辑断点
  • 选择 Log message
  • 输入:变量 my_variable = {my_variable}
  • 程序运行时会自动打印到调试控制台,不暂停

方法 B - 条件断点

  • 右键断点 → 编辑断点
  • 输入条件:my_variable == "特定值"

7. 使用调试命令

调试控制台 中可以执行的命令:

python 复制代码
# 打印变量
!print(my_variable)

# 查看变量类型
!type(my_variable)

# 列出所有变量
!dir()

# 查看局部变量
!locals()

# 执行多行代码
!for k, v in my_dict.items():
!    print(f"{k}: {v}")

8. 进阶:使用 debugpybreakpoint() 函数

在代码中设置断点:

python 复制代码
def my_function():
    x = 10
    y = [1, 2, 3]
    
    breakpoint()  # 程序会在这里暂停
    
    # 在调试控制台可以直接查看 x, y
    result = x + sum(y)
    return result

针对你的 Python 3.8 环境

由于你用的是 Python 3.8 且有 debugpy 兼容性问题,可能需要:

方案 A:使用 pdb 的打印功能

python 复制代码
import pdb; pdb.set_trace()

# 在 pdb 调试器中:
# p my_variable    # 打印变量
# pp my_dict       # 漂亮打印
# l                # 显示当前代码
# n                # 下一步
# c                # 继续执行

方案 B:在代码中记录变量

python 复制代码
# 在断点前添加
debug_values = {
    'var1': var1,
    'var2': var2,
    'timestamp': time.time()
}
print(f"Debug: {debug_values}")

实用快捷键

操作 快捷键
继续执行 F5
单步跳过 F10
单步进入 F11
单步跳出 Shift+F11
重启调试 Ctrl+Shift+F5
停止调试 Shift+F5

推荐工作流

  1. 简单查看:鼠标悬停或变量窗口
  2. 持续关注:添加到"监视"窗口
  3. 复杂表达式:在调试控制台输入
  4. 不暂停打印:使用 Logpoint

如果你在当前断点想查看之前的变量值(比如循环中的历史值),可以在调试控制台输入:

python 复制代码
# 如果变量在循环中被覆盖,可以在循环内保存历史
history.append(current_value)  # 预先添加这行代码
相关推荐
熊明才13 小时前
WSL2 网络突然瘫痪(Network is unreachable / 没有 eth0)最短修复指南(2026年9月20日亲测可用)
linux·windows·wsl2
xbzb18 小时前
Windows 启动故障修复知识整理:蓝屏 / 无限重启 / 盘符 X / 无 PE 盘
windows
我命由我1234518 小时前
Mac 操作系统 - 一些使用记录
运维·windows·学习·系统安全·运维开发·mac·学习方法
kakakahahahaha1 天前
Windows Steam 游戏存档在哪里?定位和恢复排查流程
windows·其他·电脑·笔记本电脑·内容运营·软件需求
Xy-unu1 天前
Windows 开启外接显示器 HDR 后外接显示器无信号、无法扩展模式故障记录
windows
troy1281 天前
Codex 安全盲区:代码漏洞生成实测
windows·python·ci/cd·pycharm·django·github·fastapi
其实防守也摸鱼2 天前
常见安全架构中 Shiro 的认证确认机制解析
运维·服务器·数据库·windows·github
五_谷_丰_登2 天前
windows批处理脚本(bat)问题解决方案大全——持续更新
windows·bat
YCOSA20252 天前
迎双节 雨晨 Windows 11 IoT 企业版 LTSC 26H1 轻装 28000.2956
windows·物联网
csdn_aspnet2 天前
Windows 如何隐藏 IIS Web 服务响应头中的 IIS Server 版本信息
windows·iis·url rewrite