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实现子类调用父类的方法
Nov 10 Python
在Python程序员面试中被问的最多的10道题
Dec 05 Python
Python AES加密实例解析
Jan 18 Python
用TensorFlow实现lasso回归和岭回归算法的示例
May 02 Python
Python读写文件基础知识点
Jun 10 Python
python脚本调用iftop 统计业务应用流量的思路详解
Oct 11 Python
使用pygame写一个古诗词填空通关游戏
Dec 03 Python
使用pyshp包进行shapefile文件修改的例子
Dec 06 Python
python实现Pyecharts实现动态地图(Map、Geo)
Mar 25 Python
浅谈Python中的生成器和迭代器
Jun 19 Python
Python3与fastdfs分布式文件系统如何实现交互
Jun 23 Python
在 Golang 中实现 Cache::remember 方法详解
Mar 30 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
360通用php防护代码(使用操作详解)
2013/06/18 PHP
微信 开发生成带参数的二维码的实例
2016/11/23 PHP
PHP与SQL语句常用大全
2016/12/10 PHP
通过百度地图获取公交线路的站点坐标的js代码
2012/05/11 Javascript
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
jQuery中的ajax async同步和异步详解
2015/09/29 Javascript
分享几种比较简单实用的JavaScript tabel切换
2015/12/31 Javascript
防止重复发送 Ajax 请求
2017/02/15 Javascript
HTML中使背景图片自适应浏览器大小实例详解
2017/04/06 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
JS按钮闪烁功能的实现代码
2017/07/21 Javascript
JavaScript中的FileReader图片预览上传功能实现代码
2017/07/24 Javascript
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
jquery实现有过渡效果的tab切换
2020/07/17 jQuery
vue操作dom元素的3种方法示例
2020/09/20 Javascript
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
python threading模块操作多线程介绍
2015/04/08 Python
Python线性方程组求解运算示例
2018/01/17 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
python实现决策树、随机森林的简单原理
2018/03/26 Python
使用python实现多维数据降维操作
2020/02/24 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
HTML5 新旧语法标记对我们有什么好处
2012/12/13 HTML / CSS
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
《世界多美呀》教学反思
2014/03/02 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
详解MySQL主从复制及读写分离
2021/05/07 MySQL
一级电子管军用接收机测评
2022/04/05 无线电
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS