【python】python进行debug操作

本文详细介绍了如何在Python开发中使用debug工具,包括stepinto、stepover、stepintomycode和stepout等快捷键的功能,通过实例演示了在FashionMNIST数据集调试过程中的应用,帮助读者提升代码调试效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

这也算是大学本科不好好学习,拉下的账了,今天终要补回来了。
本文用的测试代码:

from torchvision import transforms
from torchvision.datasets import FashionMNIST
import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"


#数据集准备
train_data = FashionMNIST(
    root = "./data/FashionMNIST",
    train = True,
    transform = transforms.ToTensor(),
    download = True #如果没下载数据,就下载数据;如果已经下载好,就换为False
)
test_data = FashionMNIST(
    root = "./data/FashionMNIST",
    train = False,
    transform = transforms.ToTensor(),
    download = True #如果没下载数据,就下载数据;如果已经下载好,就换为False
)

train_data_x=train_data.data
train_data_y=train_data.targets
test_data_x=test_data.data
test_data_y=test_data.targets

print(train_data_x.shape)
print(train_data_y.shape)
print(type(train_data_x))
print(type(train_data_y))
print(test_data_x.shape)
print(test_data_y.shape)

def function1(x):
    for i in range(x):
        print(i)
function1(7)

一、debug环境介绍

点击这个爬虫就可开始debug
在这里插入图片描述
在debug前我们需要设置断点:(设置几个都行)
在这里插入图片描述
进入debug后,左下角:
在这里插入图片描述
1)debugger里面可以看到存在的变量:
在这里插入图片描述
2)console里面可以我们一步步调试的过程,输出的结果会打印在里面:
在这里插入图片描述

二、debug按钮介绍

在这里插入图片描述
分别是
1)step over 快捷键:F8
2)step into 快捷键:F7
3)step into my code 快捷键: alt+shift+F7
4) step out 快捷键: shift+F8

2.1、step into:单步执行(遇到函数也是单步)

注意看蓝色的线变化(蓝色的线,代表即将被debug,但是还没有debug到)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

刚我debug了两次,结果如下:

在这里插入图片描述
step into 遇到进了函数也是单步(以我们这里定义的循环打印函数为例):
在这里插入图片描述
在这里插入图片描述

2.2、step over:单步执行(遇到函数,全部运行)

这个相比step over 就是函数里执行的区别:(step over 是直接执行完)
在这里插入图片描述

2.3、step into my code:(直接跳到下一个断点)

这个很好理解了,这里我有三个断点,所以会debug三次,然后结束:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4、step out : 执行完剩下的函数,并跳到上一层函数

就是之前在函数内部单步调试时,用step out 能一下执行完,返回到上一层函数
在这里插入图片描述

在这里插入图片描述
用了之后,整个函数直接执行完,但进程未结束
在这里插入图片描述
看蓝色的线,返回到了上一层函数
在这里插入图片描述

<think>我们正在处理用户关于Python调试设置或如何使用DEBUG的问题。根据提供的引用,我们可以整合以下信息: 1. 在VS Code中调试:点击运行和调试按钮后,会弹出选择调试配置的选项,可以选择"Python File"或其他适合的配置[^1]。 2. 使用WinPDB调试的替代方案(针对Linux)[^2]。 3. 使用Python Shell进行交互式调试:在终端输入`python`进入交互环境,输入代码并立即查看结果[^3]。 4. 在VS Code中运行单元测试:可以运行单个测试方法,通过状态栏的“运行测试”按钮选择特定测试,结果在输出面板的“Python Test Log”中查看[^4]。 5. 生成wheel包的命令:`python setup.py bdist_wheel`,但此引用与调试关系不大[^5]。 用户的问题集中在调试设置和DEBUG的使用上。因此,我们将重点放在调试环境的配置和使用方法上。 回答结构: 1. 介绍Python调试的基本概念。 2. 使用VS Code进行调试的步骤(因为引用中多次提到VS Code)。 3. 使用Python内置的pdb进行调试。 4. 使用交互式Shell(REPL)进行调试。 5. 其他调试工具(如WinPDB)的提及。 6. 单元测试中的调试(引用[4]提到)。 注意:引用[5]关于打包的内容与调试无关,可以忽略。 由于用户没有提供具体的问题上下文,我们假设用户需要了解如何设置和进行Python调试。 我们将按照以下步骤组织回答: - 使用VS Code设置调试环境 - 使用pdb命令行调试器 - 使用Python交互式Shell进行简单调试 - 其他工具(如WinPDB)的简要说明 - 单元测试中的调试 最后,生成相关问题。</think>### Python调试设置与DEBUG使用指南 在Python开发中,调试是定位和修复代码错误的关键环节。以下是几种常用调试方法的详细说明: #### 1. **VS Code调试配置**(最常用) - **步骤**: 1. 打开Python文件 2. 点击左侧活动栏的"运行和调试"图标(或按`F5`) 3. 在弹出的配置选择器中选"Python File"(会生成`.vscode/launch.json`) 4. 设置断点:点击行号左侧的空白区域 5. 启动调试:按`F5`或点击绿色箭头 - **功能**: - 变量监视:在`WATCH`面板添加表达式 - 单步调试:`F10`(跳过)、`F11`(进入) - 调用堆栈:查看函数调用链 - 支持条件断点:右键断点→编辑条件[^1][^4] #### 2. **命令行调试(pdb模块)** ```python # 在代码中插入调试器 import pdb; pdb.set_trace() # Python 3.7+ # 或使用breakpoint() # 命令行启动 python -m pdb your_script.py ``` **常用命令**: - `n`(next):执行下一行 - `s`(step):进入函数 - `c`(continue):继续执行 - `l`(list):显示代码上下文 - `p <变量>`:打印变量值 - `q`:退出调试器[^3] #### 3. **交互式调试(Python Shell)** ```bash python -i your_script.py # 运行后进入交互模式 ``` - 直接在Shell中执行代码片段 - 检查变量状态:`print(variable)` - 测试修复方案[^3] #### 4. **替代调试工具** - **WinPDB**:跨平台图形调试器(支持Linux)[^2] - **PyCharm**:专业IDE的调试功能更强大 - **浏览器调试**:使用Pyodide在Web环境中调试 #### 5. **单元测试调试** 在VS Code中: 1. 打开测试文件 2. 点击状态栏"Run Tests" 3. 选择"Run Unit Test Method..." 4. 查看"Python Test Log"输出[^4] > 提示:调试时启用`logging`模块记录程序状态可辅助复杂问题排查,建议日志级别设为`DEBUG`。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值