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实现域名系统(DNS)正向查询的方法
Apr 19 Python
Python用 KNN 进行验证码识别的实现方法
Feb 06 Python
Django数据库连接丢失问题的解决方法
Dec 29 Python
了解不常见但是实用的Python技巧
May 23 Python
python实现动态数组的示例代码
Jul 15 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
Python socket 套接字实现通信详解
Aug 27 Python
如何基于Python + requests实现发送HTTP请求
Jan 13 Python
Python自定义聚合函数merge与transform区别详解
May 26 Python
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
Mar 29 Python
Python echarts实现数据可视化实例详解
Mar 03 Python
Python OpenCV实现图形检测示例详解
Apr 08 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
一个查看session内容的函数
2006/10/09 PHP
php 常用类整理
2009/12/23 PHP
php文件下载处理方法分析
2015/04/22 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
PHP常用的类封装小结【4个工具类】
2019/06/28 PHP
Javascript typeof 用法
2008/12/28 Javascript
javascript中常用编程知识
2013/04/08 Javascript
ExpressJS入门实例
2015/01/14 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
angularjs 源码解析之injector
2016/08/22 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
浅谈Node 异步IO和事件循环
2019/05/05 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
k8s node节点重新加入master集群的实现
2021/02/22 Javascript
Python实现登陆文件验证方法
2018/10/06 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
python 字符串追加实例
2019/07/20 Python
如何基于python实现脚本加密
2019/12/28 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
俄罗斯最大的在线手表商店:Bestwatch.ru
2020/01/11 全球购物
普罗米修斯教学反思
2014/02/06 职场文书
聘任书的写作格式及范文
2014/03/29 职场文书
大学英语演讲稿范文
2014/04/24 职场文书
人身损害赔偿协议书范本
2014/09/27 职场文书
2014年企业党支部工作总结
2014/12/04 职场文书
现实表现材料范文
2014/12/23 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
国王的演讲观后感
2015/06/03 职场文书
机器人总动员观后感
2015/06/09 职场文书
导游词之介休绵山
2019/12/31 职场文书
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
2021/11/27 Vue.js
Go并发4种方法简明讲解
2022/04/06 Golang