python中调试或排错的五种方法示例


Posted in Python onSeptember 12, 2019

前言

本文主要给大家介绍了关于python中调试或排错的五种方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的的介绍吧

python调试或排错的五种方法

1、print,直接打印,比较简单而且粗暴

在代码中直接输入print+需要输出的结果,根据打印的内容判断即可

 2、assert断言,很方便,测试人员常常在写自动化用例的时候用的比较多

如下,直接将预期结果和实际结果做判断 

def true_code():
 x = 3
 y = 2
 z = x + y
 assert(5==z), "z不等于5"

def false_code():
 x = 3
 y = 3
 z = x + y
 assert(5==z), "z不等于5"

true_code()
false_code()

运行结果如下:

python中调试或排错的五种方法示例

3、pdb交互式源代码调试

常用命令:break或b  设置断点

   continue或c  继续执行程序,或跳到下个断点

    list或l  查看当前行的代码段

    step或s  进入函数

    return或r  执行代码知道从当前函数返回

       exit或q  中止并退出

       next或n  执行下一行

     p或!   打印变量的值例如a为变量,则输入p a

     help或h   帮助

在使用pdb时需要导入pdb库,然后在代码中需要的地方引入pdb代码片段,如下:

import pdb
 
 if __name__ == "__main__":
 a = 1
 pdb.set_trace() #创建pdb代码片段
 b = 2
 c = a + b
 print(c)

输入pdb命令,并且查看结果:

python中调试或排错的五种方法示例 

4、日志,定位问题记录程序运行情况

主要是引入logging库

logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,logging的日志可以分为  debug(), info(), warning(), error() and critical()5个级别,根据需要选择不同的级别打印日志

5、IDE Debuger 图形界面便于数据查看,支持多线程调试,远程调试

主要是IDE中自带的debug调试

设置断点,运行时以debug模式运行,或这shift+F9运行

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
把项目从Python2.x移植到Python3.x的经验总结
Apr 20 Python
Python语言实现获取主机名根据端口杀死进程
Mar 31 Python
python中zip()方法应用实例分析
Apr 16 Python
Python松散正则表达式用法分析
Apr 29 Python
Python中的迭代器与生成器高级用法解析
Jun 28 Python
Python下的Softmax回归函数的实现方法(推荐)
Jan 26 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
Mar 15 Python
pycharm打开命令行或Terminal的方法
Jan 16 Python
anaconda如何查看并管理python环境
Jul 05 Python
Pytorch转onnx、torchscript方式
May 25 Python
用Python开发app后端有优势吗
Jun 29 Python
OpenCV-Python实现人脸美白算法的实例
Jun 11 Python
详解Python 中sys.stdin.readline()的用法
Sep 12 #Python
Python3将数据保存为txt文件的方法
Sep 12 #Python
Python3 tkinter 实现文件读取及保存功能
Sep 12 #Python
调试Django时打印SQL语句的日志代码实例
Sep 12 #Python
Python socket非阻塞模块应用示例
Sep 12 #Python
Python的条件锁与事件共享详解
Sep 12 #Python
Python的互斥锁与信号量详解
Sep 12 #Python
You might like
PHP n个不重复的随机数生成代码
2009/06/23 PHP
如何使用纯PHP实现定时器任务(Timer)
2015/07/31 PHP
thinkPHP显示不出验证码的原因与解决方法分析
2017/05/20 PHP
php实例化一个类的具体方法
2019/09/19 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
2020/01/26 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
javascript两段代码,两个小技巧
2010/02/04 Javascript
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
6款经典实用的jQuery小插件及源码(对话框/提示工具等等)
2013/02/04 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
js动态为代码着色显示行号
2013/05/29 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
2014/12/17 Javascript
jquery中radio checked问题
2015/03/16 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
深入理解vue $refs的基本用法
2017/07/13 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
浅析Python中的多重继承
2015/04/28 Python
Python中的urllib模块使用详解
2015/07/07 Python
Python 正则表达式实现计算器功能
2017/04/29 Python
Python基于PyGraphics包实现图片截取功能的方法
2017/12/21 Python
教你用一行Python代码实现并行任务(附代码)
2018/02/02 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
Python 如何提高元组的可读性
2019/08/26 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
2015年简历自我评价范文
2015/03/11 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
集结号观后感
2015/06/08 职场文书
活动宣传稿范文
2015/07/23 职场文书
班委竞选稿范文
2015/11/21 职场文书