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中numpy包使用教程之数组和相关操作详解
Jul 30 Python
python中的随机函数random的用法示例
Jan 27 Python
Django-Rest-Framework 权限管理源码浅析(小结)
Nov 12 Python
利用arcgis的python读取要素的X,Y方法
Dec 22 Python
Python图像处理PIL各模块详细介绍(推荐)
Jul 17 Python
python 实现GUI(图形用户界面)编程详解
Jul 17 Python
Django使用unittest模块进行单元测试过程解析
Aug 02 Python
使用Keras加载含有自定义层或函数的模型操作
Jun 10 Python
Python虚拟环境的创建和包下载过程分析
Jun 19 Python
keras 多任务多loss实例
Jun 22 Python
浅析Python 抽象工厂模式的优缺点
Jul 13 Python
Selenium浏览器自动化如何上传文件
Apr 06 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概述.
2006/10/09 PHP
php mysql数据库操作类
2008/06/04 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
PHP解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
javascript插入样式实现代码
2012/02/22 Javascript
解释&&和||在javascript中的另类用法
2014/07/28 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
原生js实现瀑布流布局
2017/03/08 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
Vue 刷新当前路由的实现代码
2019/09/26 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
vue+ESLint 配置保存 自动格式化代码
2020/03/17 Javascript
python实现异步回调机制代码分享
2014/01/10 Python
Web服务器框架 Tornado简介
2014/07/16 Python
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
python简单读取大文件的方法
2016/07/01 Python
Python处理文本文件中控制字符的方法
2017/02/07 Python
python音频处理用到的操作的示例代码
2017/10/27 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
Python学习笔记之集合的概念和简单使用示例
2019/08/22 Python
详解Python的三种拷贝方式
2020/02/11 Python
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
安全生产标语大全
2014/10/06 职场文书
2015高考寄语集锦
2015/02/27 职场文书
我的生日感言
2015/08/03 职场文书
标准发言稿结尾
2019/07/18 职场文书
Python Parser的用法
2021/05/12 Python
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP