Spyder调试python函数

本文介绍了Python代码调试的几种方法,包括使用pdb、PyCharm等工具的技巧,并通过实例进行了详细讲解。此外,还探讨了无监督特征选择方法NDFS的Python实现及其在skfeature工具包中的应用。

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

记录一些简单的概念、用法、资源链接等。

1. 三个比较好的链接:

【1】python代码调试技巧 —- 结合例子讲解了利用pdb、PyCharm、PyDev和日志功能进行python代码调试的方法,语言简练、排版清晰。
【2】Spyder之Debugging调试简介 —- 要利用好IDE自带的tutorial和documentation。
【3】Python 程序如何高效地调试—-知乎上的问答,可以了解各种不同的思路和解决方案。

2. 概念

pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。pdb 提供了一些常用的调试命令。—-摘链接[1]

表1

调试器是可扩展的 — — 它实际上被定义为类Pdb,目前没有文档,但容易通过读取源文件来理解,扩展接口使用模块bdb和cmd。调试器的提示符是(Pdb)。—-python文档

3. Spyder调试函数

记录一下当初的错误尝试,回想起来好傻。

图1

点了开始调试,运行到定义函数所在的行时,点进入函数(step into),天真地想,Spyder这么牛啊,都不用传递参数就能进去调试,结果当然是直接跳过,进不去。

于是,在ndfs那个函数中设置了一个断点,在console中调用它,觉得这下应该没问题了。然而结果是,程序麻利儿地跑完了,根本不带停的…

图2

还有其它奇怪的尝试… 比如以下两种:

图3

最后正解应该是,在原程序中加一行调用ndfs这个函数的代码,当运行到调用函数的这行代码时,再点进入函数时 ,就可以顺利进入函数内部调试,后续再单步什么的也妥妥的。

其它

NDFS[1]—-非负判别特征选择,是一种无监督的特征选择方法,上面的例子是该算法的python实现,收录于skfeature这个特征选择工具包

在82行左右(计算拉普拉斯矩阵时),好像有一个小错误,此处待后续确认后再作相应说明。原代码是
L = np.array(W.sum(1))[:, 0] - W
我觉得应该是
np.diag( np.array( W.sum(1) ).reshape(-1) ) - W 或者
np.diag( np.array( W.sum(1) )[:,0] ) - W
( 另:np.reshape可换为np.flatten(),np.ravel() )

[1] Li Z, Yang Y, Liu J, et al. Unsupervised feature selection using nonnegative spectral analysis[C]. AAAI. 2012.

### SpyderPython的安装步骤及教程 #### 1. ### Python 的安装 - 首先访问官方网站下载对应系统的 Python 版本。可以从 https://www.python.org/downloads/ 下载最新的稳定版本[^1]。 - 运行下载的安装文件,建议勾选 “Add Python to PATH” 选项以便在命令提示符中可以直接调用 Python[^1]。 - 安装完成后打开命令提示符输入 `python --version` 或者 `python3 --version` 来验证是否成功安装并确认当前已安装的具体版本号[^1]。 #### 2. ### Anaconda 发行版(可选) 如果计划使用 Spyder,则推荐通过Anaconda发行版来管理和安装Spyder及其他依赖项。这是因为Anaconda自带了许多常用的科学计算库,并且内置了Spyder作为默认IDE之一[^3]。 - 访问官网链接 https://www.anaconda.com/products/distribution 并按照指引完成相应平台下的Anaconda安装流程[^1]。 - 启动Anaconda Prompt后键入 `conda install spyder` 更新至最新可用版本或者指定特定版本如 `conda install spyder=5.x.y`。 #### 3. ### 单独安装 Spyder (非Anaconda方式) 若不想采用整个Anaconda套装仅需单独获取Spyder的话可以借助pip工具实现: - 打开终端窗口执行如下指令以确保pip处于最新状态:`python -m pip install --upgrade pip`; - 接着运行此命令进行Spyder的标准安装:`pip install spyder`[^1];如果需要具体某个历史发布版本则替换为例如:`pip install spyder==4.z.w`(z,w代表子版本序号)[^1]。 #### 4. ### 初次启动与基础设置 成功安装完毕之后可以在开始菜单里寻找Spyder快捷图标双击开启它;或者是经由命令行界面打入spyder触发加载进程[^3]。 用户初次进入时会看到三个主要区域划分——左侧为主编辑区用来编写源码文件(.py);中间部分呈现变量探查器帮助追踪全局局部变量变化情况;右侧上方则是控制台模拟真实shell运作环境方便即时测试短小片段代码逻辑正确与否[^2]. #### 5. ### 调试功能简介 关于如何利用Spyder内部嵌入式的调试机制解决潜在问题这里给出简要说明: - 设置断点:只需点击目标行数旁边的空白处即可标记一处暂停位置等待程序到达此处停止进一步执行从而便于逐句审查上下文中各个要素数值关系等等细节信息. - 开始调试模式:选择顶部导航栏中的Debug->Start Debugging Session按钮激活特殊运行状况下允许逐步前进(F7)/跳过函数调用(F8)等功能按键组合操作序列[^2]. ```bash # 示例:检查Python版本 python --version # 示例:升级pip到最新版本 python -m pip install --upgrade pip # 示例:安装Spyder pip install spyder ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值