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的Django框架编写从Google Adsense中获得报表的应用
Apr 17 Python
python中解析json格式文件的方法示例
May 03 Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 Python
详解Django解决ajax跨域访问问题
Aug 24 Python
python修改txt文件中的某一项方法
Dec 29 Python
Djang的model创建的字段和参数详解
Jul 27 Python
python实现两个一维列表合并成一个二维列表
Dec 02 Python
django-crontab实现服务端的定时任务的示例代码
Feb 17 Python
Django media static外部访问Django中的图片设置教程
Apr 07 Python
python爬虫实现POST request payload形式的请求
Apr 30 Python
Django中使用Celery的方法步骤
Dec 07 Python
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
晶体管来复再生式二管收音机
2021/03/02 无线电
ThinkPHP中Session用法详解
2014/11/29 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
PHP生成唯一订单号
2015/07/05 PHP
javascript中的几个运算符
2007/06/29 Javascript
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
2014/06/20 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
2014/08/15 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
2014/08/30 Javascript
Move.js入门
2017/02/08 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
JavaScript监听手机物理返回键的两种解决方法
2017/08/14 Javascript
vsCode安装使用教程和插件安装方法
2020/08/24 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
使用django-suit为django 1.7 admin后台添加模板
2014/11/18 Python
用Python实现协同过滤的教程
2015/04/08 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
基于python实现查询ip地址来源
2020/06/02 Python
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
软件测试面试题
2014/01/05 面试题
css animation配合SVG制作能量流动效果
2021/03/24 HTML / CSS
大学生物业管理求职信
2013/10/24 职场文书
报告会主持词
2014/04/02 职场文书
祖国在我心中演讲稿300字
2014/05/04 职场文书
医院竞聘演讲稿
2014/05/16 职场文书
中学生运动会新闻稿
2014/09/24 职场文书
钱学森电影观后感
2015/06/04 职场文书
详解Python牛顿插值法
2021/05/11 Python
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript