原标题:Python调试器,一个优秀开发人员的必备技能包

写在之前

不管是之前搞 acm 用 c/c++ 写算法还是后来用 Python 写代码,我发现在程序出现问题的时候,大多数人习惯性的用 print 函数打印变量值这种方法来试图找出问题的症结所在,这种查找问题的方式低效到让人只想删掉代码重新去写。我记得一些人问我问题的时候,我不止一次的推荐过让他们用单步调试去找代码中存在的问题,但是更多收获的是「什么是单步调试」这种疑问,其实单步调试就是,自己去 Google 好么?

究其源头还是很多人没有意识到「调试程序」的重要性,或者根本不知道这个概念。调试程序是所有开发人员必须具备的一项重要技能,它可以让我们一步一步的看到程序的运行过程,帮助我们准确的找到程序中的错误。当然这里我们还是以 Python 为例来说「调试程序」。

也许会有人说我现在就写一些短的代码,好像也不用这么麻烦的去调试程序。如果你只是准备写一辈子短代码,那你确实不用,但是如果你以后一步步的想去做项目了,随着代码量的增加,逻辑的复杂,如果你还是硬撑着用 print 去解决问题,那么恭喜你,你可能加班加到头发光光也不一定能找到问题在哪。所以我希望大家能在一开始就走在正确的道路上,只要稍微花点时间去学习就能掌握的技能为什么要当作视而不见呢?植发很贵的!

现在很多的编辑器其实都带着「调试程序」的功能,比如写 c/c++ 的 codeblocks,写 Python 的 pycharm,这种图形界面的使用和显示都相当友好,简单方便易学,这个不是我这篇文章要讲的重点。今天主要是想给大家介绍一下 「Python调试器」,快速定位各种疑难杂症。

Python 调试器

这一部分主要就是想说两个 Python 调试器,分别是标准库自带的 pdb 和开源的 ipdb。

pdb

pdb 是 Python 自带的库,为 Python 提供了一种交互式的源码调试功能,包含当前调试器应有的功能,包括设置断点、单步调试、查看源码等。其实如果你之前学过 c/c++ 的话,你可能知道 gdb 这个命令行调试工具,如果你之前用过 gdb,那么恭喜你你可以直接用 pdb 了,因为这哥俩一个用法。如果你不知道 gdb 也没事,我们先来看一下 pdb 的部分调试命令(截图来自脚本之家):

这里有两种不同的方法来启动 Python 调试器,两种方法适用于不同的场景。一种是直接在命令行参数指定使用 pdb 模块启动 Python 文件,这种适合于代码文件较短的情况,将在代码的第一行启动 Python 调试器。具体如下所示(例如文件名是 test.py):

python -m pdb test.py

另一种是在 Python 代码中调用 pdb 模块的 set_trace 方法设置一个断点,当程序运行到此断点的时候,程序将会暂停执行并且打开 pdb 调试器,这种适合于代码文件较大的情况。具体如下所示:

启动 Python 调试器以后就可以使用上面截图中的调试命令进行程序的调试。比如在接下来的操作中,我们先使用 list 来查看我们的代码,然后使用 p 打印变量当前的取值,最后用 n 执行下一行 Python 代码:

ipdb

ipdb 是一个开源的 Python 调试器,其实它和 pdb 的接口是一样的。那既然一样的接口,那为啥还要设计个 ipdb 呢?黑格尔曾经说过「存在即合理」,ipdb 相比于 pdb 多了语法高亮,tab 自动补全等友好功能,在易用性方面做了很大的改进,这个感觉就和 Python 和 IPython 一样。

当然,ipdb 作为一个第三方库,在使用之前必然要先安装:

pip install ipdb

我们修改一下之前例子中的 test.py 文件,修改之后的代码如下:

具体的操作还是和上面的 pdb 的操作一样:

你看,上面带了点儿高亮,是不是顺眼了很多?还不赶紧去试试。返回搜狐,查看更多

责任编辑:

python pdb pip安装_Python调试器,一个优秀开发人员的必备技能包相关推荐

  1. python包pip安装_python包管理之Pip安装及使用

    Python有两个著名的包管理工具easy_install.py和pip.在Python2.7的安装包中,easy_install.py是默认安装的,而pip需要我们手动安装. pip可以运行在Uni ...

  2. python使用pip安装_Python | 如何用pip安装模块和包

    工具/原料 Windows系统 方法/步骤 1 如果不是必须使用某个较早的Python版本,建议在Python官网下载最新的Python版本.关于哪些版本自带pip工具,参考下面文章. 2 下面是文章 ...

  3. 写给初学者的Python与pip安装教程

    写给初学者的Python与pip安装教程 在Python编程中,安装包(package)是一个重要的环节.Python本身提供了pip这一安装和管理包的便捷工具,然而目前网上所能找到的有关pip的中文 ...

  4. pip安装了 但是python找不到_解决python明明pip安装成功却找不到包的问题

    解决python明明pip安装成功却找不到包的问题 如下所示: 原因1:版本不对,如用环境变量设置的python3.7路径,那么用的就是3.7的pip.exe安装了包.却用的是2.7的python运行 ...

  5. python cv2模块安装_Python运行脚本前,自动安装需要的模块包

    在服务器上部署Python程序时,往往需要先安装很多需要的模块包.如果一个一个安装就会出现忘记的情况.或者新增加某个新的模块时,也可能会忘记安装. 这里先讲一下怎么通过Python程序自动安装. 以下 ...

  6. 如何用python和pip安装在txt文件中配置好版本的库包

    如何用python和pip安装在txt文件中配置好版本的库包 文章目录: 一.建立库包版本的txt配置文件 二.安装txt配置文件中的库包 有时候你自己用python实现一个项目,然后想把它在gith ...

  7. windows下 python 使用 pip 安装TA-Lib报错的原因及解决方法

    windows下 python 使用 pip 安装TA-Lib报错的原因及解决方法 问题环境 问题描述 问题原因 & 解决办法 问题环境 Windows 10 x64 .python 3.8. ...

  8. 免安装版本python的pip安装

    免安装版本python的pip安装 python免安装版本下载 pip的安装方法 今天换了新的电脑,然后需要从新配置一套python开发环境.想着是先弄套免安装版本的吧以后也方便迁移.其实这事以前也干 ...

  9. Qt安装Windows调试器

    Qt安装Windows调试器 问题:Win10下使用Qt无法调试,这是因为没有指定调试器. 解决方法: 1. 打开网址:https://developer.microsoft.com/zh-cn/wi ...

最新文章

  1. mysql 函数的参数_MySQL中的数值函数
  2. Upwork 发布最赚钱的编程语言 Top 15
  3. JavaScript实现strongly Connected Components 强连通分量算法(附完整源码)
  4. android layout 渲染,java – 渲染android.support.design.widget.CoordinatorLayout的问题
  5. [转] 关于MSCOMM控件的一些说明
  6. Java文件编码自动转换工具类(只改变编码,不会改变文件内容)
  7. windows网络编程-几种模式
  8. 本地文件搜索神器everything介绍
  9. VUE+element-ui开发出的美观好看的登录注册模板组件 集成方便
  10. Oracle的SQL注入
  11. 大数据告诉你——垃圾围城,现行的垃圾分类制度,作用到底能有多大?
  12. python贷款_Python贷款逾期分析
  13. 由浅入深MFC学习摘记--第三部分
  14. centos7+PHP7 编译安装swoole教程
  15. 金九银十!“68道 Redis+168道 MySQL”精品面试题(带解析),你背废了吗?
  16. 基于MTK65xx平台lcm和背光驱动的编写
  17. cocos2dx-精灵的移动跳跃
  18. 2023 贵阳大数据安全精英赛 --- Crypto childrsa wp
  19. 根号1+x的平方分之一的不定积分
  20. Centos7 查看系统版本信息

热门文章

  1. 依托大数据的财务管理新路径
  2. urllib携带登录信息
  3. C语言基础专题 - 指针(编写中)
  4. scrapy 中爬取时被重定向_Scrapy详解之scrapy shell
  5. HDU1754 I Hate It (线段树单点修改+区间查询)
  6. stm32运行java_STM32之——3种启动方式学习
  7. 推荐 | 微软SAR近邻协同过滤算法相关问题(三)
  8. count(1)与count(id)与count(*)效率,以及覆盖索引,索引下推
  9. HashMap1.7和1.8头插入与尾插入的原因
  10. 使用HTML5的语义标签