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的SimpleHTTPServer源码来解析socket通信
Jun 27 Python
用python找出那些被“标记”的照片
Apr 20 Python
python脚本监控Tomcat服务器的方法
Jul 06 Python
Python学习笔记之Break和Continue用法分析
Aug 14 Python
python3中替换python2中cmp函数的实现
Aug 20 Python
Python列表的切片实例讲解
Aug 20 Python
浅谈Tensorflow 动态双向RNN的输出问题
Jan 20 Python
python实现查找所有程序的安装信息
Feb 18 Python
基于python爬取梨视频实现过程解析
Nov 09 Python
selenium如何定位span元素的实现
Jan 13 Python
Python实现Excel自动分组合并单元格
Feb 22 Python
浅谈Python中对象是如何被调用的
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文件与目录操作示例
2016/12/24 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
javascript中的变量是传值还是传址的?
2010/04/19 Javascript
动态调用CSS文件的JS代码
2010/07/29 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
详解Javascript几种跨域方式总结
2017/02/27 Javascript
vue中七牛插件使用的实例代码
2017/07/28 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
Express本地测试HTTPS的示例代码
2018/06/06 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
2021/01/18 Javascript
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
理解Python中的With语句
2016/03/18 Python
python 列表,数组和矩阵sum的用法及区别介绍
2018/06/28 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
Python利用matplotlib绘制折线图的新手教程
2020/11/05 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
幼儿教师师德演讲稿
2014/05/06 职场文书
研讨会通知
2015/04/27 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang