python正确判断错误_python之错误、调试和测试
错误处理
在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因。
Python内置try...except...finally...的错误处理机制
#try:#print('try...')#r=10/0 #运算式#print('result',r)#判断运算式是否正确,正确输出运算式结果#except ZeroDivisionError as e:#运算式错误,报错#print('except',e)#finally:#结束try#print('finally...')#print('END')
调试
程序能一次写完并正常运行的概率很小,基本不超过1%。总会有各种各样的bug需要修正。有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复bug。
第一种方法用print()把变量打印出来看看
第二种方法是断言,凡是用print()来辅助查看的地方,都可以用断言(assert)来替代,如果断言失败,assert语句本身就会抛出AssertionError。
#def foo(s):#n = int(s)#assert n != 0, 'n is zero!'#如果n!=0为True运行return,为False执行报错信息‘n is zero!’#return 10 / n#foo(5)
第三种方法是把print()替换为logging。logging不会抛出错误,而且可以输出到文件。
#import logging#logging.basicConfig(level=logging.INFO)#s = '0'#n = int(s)#logging.info('n = %d' % n)#print(10 / n)
第四种方法是启动Python的调试器pdb,让程序以单步方式运行,可以随时查看运行状态
单元测试
单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作
编写单元测试时,我们需要编写一个测试类,从unittest.TestCase继承。
以test开头的方法就是测试方法,不以test开头的方法不被认为是测试方法,测试的时候不会被执行。
文档测试
Python内置的“文档测试”(doctest)模块可以直接提取注释中的代码并执行测试。
doctest严格按照Python交互式命令行的输入和输出来判断测试结果是否正确。只有测试异常的时候,可以用...表示中间一大段烦人的输出。
python正确判断错误_python之错误、调试和测试相关推荐
- python输入输出有问题_python – Modbus错误:[输入/输出]无从远程...
使用modbus时,即使您使用的是高级库,也可以随时关注官方modbus documentation. 通过文档,您可以检查框架的每个字节的含义: 0x01 0x04 0x00 0x00 0x00 0 ...
- python的缩进意义_python缩进错误的原因是什么
要求严格的代码缩进是python语法的一大特色,就像C语言家族(C.C++.Java.C#等等)中的花括号一样重要,在大多数场合还有必要.在很多代码规范里面也都有要求代码书写按照一定的规则进行换行和代 ...
- python程序编译错误_Python编译错误集锦
1 IndentationError: expected an indented block Python语言是一款对缩进非常敏感的语言,给很多初学者带来了困惑,即便是很有经验的Python程序员,也 ...
- python语音识别设置失败_Python语音识别错误通道数无效
作为项目的一部分,我正在python上运行一个语音识别代码.我面临着一个非常奇怪的问题 当我把语音识别代码放在一个函数中时,比如:def loop(): r=sr.Recognizer() with ...
- python目录名称无效_python目录名错误怎么解决?这几种方案才是你需要学会的
[摘要]python可以用来做很多事情,如何统计python词频?如何用python统计目录名错误的事情?这是我每次面试的时候都会问的一个问题,那么python目录名错误怎么解决?这几种方案才是你需要 ...
- python在冒号处显示语法错误_python冒号错误语法无效
问题1 看看错误:File "", line 3 def__init__(self,name): ^ SyntaxError: invalid syntax 在def和__init ...
- 用pycharm写python老是提示错误_python pycharm错误集锦
url:http://www.cnblogs.com/hinimix/p/8016859.html 1, this list creation could be rewritten as a list ...
- python名字未定义_Python名称错误:未定义名称“”
我目前正在扩展python技能,通过编程一个程序生成的文本格式的地下城级别.我很困惑为什么我的"交叉"定义不起作用.下面是包含def的类:class Room: global x1 ...
- python if判断字符串_python之条件判断、循环和字符串格式化
1. python的条件判断:if和else 在条件判断中可以使用算数运算符 等于:== 不等于:!= 大于:> 小于:< 大于等于:>= 小于等于:<= 示例1: usern ...
- python怎么判断中文_python 判断是否为中文
python在执行代码过程是不知道这个字符是什么意思的.是否是中文,而是把所有代码翻译成二进制也就是000111这种形式,机器可以看懂的语言. 也就是在计算机中所有的字符都是有数字来表示的.汉字也是有 ...
最新文章
- 自动驾驶中图像与点云融合的深度学习研究进展综述
- 阿里发布新工具,直接帮你改代码!网友:工作量又减轻了~
- Bootstrap Paginator分页插件+ajax
- pythonweb接口优化_记一次 Python Web 接口优化
- java继承机制实验报告_JAVA继承实验报告.doc
- 攻防世界-web-bug-从0到1的解题历程writeup
- ajax header的bearer token验证
- 壕!腾讯再公布股权激励:2.97万员工 人均49万港元
- IE9下透明度设置无效
- GT_Trace的使用
- 方型二维码换成圆形_1分钟将微信头像从方形变为圆形
- 金蝶KIS15.1专业版注册流程和企业认证流程
- winserve2016 万能驱动网卡_万能网卡驱动win10
- 【备忘录】UTM坐标系与经纬度转换 MATLAB C语言
- failed to open mysql_mysql解决fail to open file的方法
- 修改html2canvas生成图片的dpi
- 什么样的人适合做外贸?能做好外贸?(非外贸零售)
- 长龙航空软件测试招聘,长龙航空空乘面试经验
- tkinter标签Lable组件的详细讲解
- L1-038 新世界 (5 分)C语言