python assert的用处示例详解


Posted in Python onApril 01, 2019

使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单。在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件时就崩溃,这时候就需要assert断言的帮助。本文主要是讲assert断言的基础知识。

python assert断言的作用

python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为

下面通过实例代码介绍下python assert 作用,具体内容如下所示:

python assert 句语格式及用法很简单。通常程序在运行完之后抛出异常,使用assert可以在出现有异常的代码处直接终止运行。 而不用等到程序执行完毕之后抛出异常。

python assert的作用

python assert如果发生异常就说明表达示为假。可以理解表示式返回 值为假 时就会触发异常。

assert语句的语法格式

assert expression [, arguments]
assert 表达式 [, 参数]

附加说明:assert也可以用于多个表达式的: assert expression1, expression2。
注意:表达式=false 时,则执行其后面的异常。

我们看几个示例

1:单个表达式:

a = 1
assert a < 0, '出错了,a大于0 啊'
print('这里不会输出')

输出:

Traceback (most recent call last):
 File "main.py", line 3, in <module>
 assert a < 0, '出错了,a大于0 啊'
AssertionError: 出错了,a大于0 啊

2:多个表达式:

a = 1
b = -1
assert a > 0, b < 0
print('正常输出,表达式返回真了') # 输出:正常输出,表达式返回真了

3:尝试捕获 assert 异常:

import traceback

try:
 assert a < 0
except AssertionError as aeeor: # 明确抛出此异常
 # 抛出 AssertionError 不含任何信息,所以无法通过 aeeor.__str__()获取异常描述
 print('AssertionError', aeeor, aeeor.__str__())

 # 通过 traceback 打印详细异常信息
 print('traceback 打印异常')
 traceback.print_exc()
except: # 不会命中其他异常
 print('assert except')

try:
 raise AssertionError('测试 raise AssertionError')
except AssertionError as aeeor:
 print('raise AssertionError 异常', aeeor.__str__())

输出:

AssertionError
 traceback 打印异常
 Traceback (most recent call last):
 File "main.py", line 7, in <module>
 aAssertionError
 raise AssertionError 异常 测试 raise AssertionErrorssert a < 0

 4:函数调用抛出异常:

# 除法运算
def foo(value, divide):
 assert divide != 0
 return value / divide
print('4除以2 =', foo(4, 2)) # 执行成功
print('4除以0 =', foo(4, 0)) # 抛出异常

输出:

4除以2 = 2.0
 Traceback (most recent call last):
 File "main.py", line 8, in <module>
 print('4除以0 =', foo(4, 0)) # 抛出异常
 File "main.py", line 3, in foo
 assert divide != 0
 AssertionError

通过上面几个示例,相信大家也深刻理解aseert的用处了

总结: 表达式返回false 时。直接抛出异常终止继续执行。

以上所述是小编给大家介绍的python assert的用处示例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python基于列表list实现的CRUD操作功能示例
Jan 05 Python
python实现图片识别汽车功能
Nov 30 Python
对python制作自己的数据集实例讲解
Dec 12 Python
Python3内置模块之json编解码方法小结【推荐】
Dec 09 Python
Django如何简单快速实现PUT、DELETE方法
Jul 24 Python
开启Django博客的RSS功能的实现方法
Feb 17 Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 Python
matlab中二维插值函数interp2的使用详解
Apr 22 Python
Python利用Xpath选择器爬取京东网商品信息
Jun 01 Python
python re的findall和finditer的区别详解
Nov 15 Python
tensorflow与numpy的版本兼容性问题的解决
Jan 08 Python
PyTorch梯度裁剪避免训练loss nan的操作
May 24 Python
使用Python操作FTP实现上传和下载的方法
Apr 01 #Python
Python提取特定时间段内数据的方法实例
Apr 01 #Python
如何使用Python进行OCR识别图片中的文字
Apr 01 #Python
Python datetime和unix时间戳之间相互转换的讲解
Apr 01 #Python
详解Python网络框架Django和Scrapy安装指南
Apr 01 #Python
详解python的argpare和click模块小结
Mar 31 #Python
linux安装python修改默认python版本方法
Mar 31 #Python
You might like
农民C键的运用技巧
2020/03/04 星际争霸
ini_set的用法介绍
2014/01/07 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
基于PHP实现通过照片获取ip地址
2016/04/26 PHP
PHP实现支持CURL字符串证书传输的方法
2019/03/23 PHP
PHP批斗大会之缺失的异常详解
2019/07/09 PHP
php桥接模式应用案例分析
2019/10/23 PHP
Javascript的IE和Firefox兼容性汇编(zz)
2007/02/02 Javascript
20个非常棒的Jquery实用工具 国外文章
2010/01/01 Javascript
简单理解vue中el、template、replace元素
2016/10/27 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
前端把html表格生成为excel表格的实例
2017/09/19 Javascript
javascript计算渐变颜色的实例
2017/09/22 Javascript
详解用Node.js实现Restful风格webservice
2017/09/29 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
2017/12/12 Javascript
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
vue实现日历表格(element-ui)
2020/09/24 Javascript
[02:11]完美世界DOTA2联赛10月28日赛事精彩集锦:来吧展示实力强劲
2020/10/29 DOTA
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
Python实现获取操作系统版本信息方法
2015/04/08 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
Python爬虫基础之XPath语法与lxml库的用法详解
2018/09/13 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
python利用datetime模块计算程序运行时间问题
2020/02/20 Python
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
美国最受欢迎的童装品牌之一:The Children’s Place
2016/07/23 全球购物
墨西哥购物网站:Elektra
2020/01/21 全球购物
党校学习自我鉴定
2014/02/24 职场文书
感恩老师演讲稿400字
2014/08/28 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书
话题作文之学会尊重
2019/12/16 职场文书
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android