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 相关文章推荐
python删除文件示例分享
Jan 28 Python
python益智游戏计算汉诺塔问题示例
Mar 05 Python
python过滤字符串中不属于指定集合中字符的类实例
Jun 30 Python
Python 正则表达式入门(中级篇)
Dec 07 Python
Python 在字符串中加入变量的实例讲解
May 02 Python
python隐藏终端执行cmd命令的方法
Jun 24 Python
python 整数越界问题详解
Jun 27 Python
Django REST framework内置路由用法
Jul 26 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
Aug 20 Python
python实现从尾到头打印单链表操作示例
Feb 22 Python
python logging模块的使用详解
Oct 23 Python
python实现图片转字符画的完整代码
Feb 21 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 date函数参数详解
2006/11/27 PHP
javascript 正则替换 replace(regExp, function)用法
2010/05/22 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
2017/09/13 Javascript
深入理解Vuex 模块化(module)
2017/09/26 Javascript
详解webpack4升级指南以及从webpack3.x迁移
2018/06/12 Javascript
JS实现的简单分页功能示例
2018/08/23 Javascript
微信小程序用canvas画图并分享
2020/03/09 Javascript
[02:40]2014DOTA2 国际邀请赛中国区预选赛 四大豪门抵达华西村
2014/05/23 DOTA
python连接MySQL、MongoDB、Redis、memcache等数据库的方法
2013/11/15 Python
在Heroku云平台上部署Python的Django框架的教程
2015/04/20 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
python 识别图片中的文字信息方法
2018/05/10 Python
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
python爬取内容存入Excel实例
2019/02/20 Python
python中hasattr()、getattr()、setattr()函数的使用
2019/08/16 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
2020/10/30 Python
如何创建一个Flask项目并进行简单配置
2020/11/18 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
HTML5 图片预加载的示例代码
2020/03/25 HTML / CSS
大一自我鉴定范文
2013/10/04 职场文书
大学自荐信
2013/12/12 职场文书
信息与计算科学专业推荐信
2014/02/23 职场文书
小学英语课后反思
2014/04/26 职场文书
自查自纠工作总结
2014/10/15 职场文书
2015年端午节国旗下演讲稿
2015/03/19 职场文书
节约用电倡议书
2015/04/28 职场文书
学风建设主题班会
2015/08/17 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android
ConditionalOnProperty配置swagger不生效问题及解决
2022/06/14 Java/Android