Python assert语句的简单使用示例


Posted in Python onJuly 28, 2019

写在前面

最近每日一更,我这菜鸡都有点儿不好意思了

简单介绍

简单用法是:

assert expression

让我们用程序来测试这个expression,如果expression相当于False,那么raise一个AssertionError出来。

即逻辑上等同于:

if not expression:
 raise AssertionError

简单看看这些例子:

>>> assert True
>>> assert False
Traceback (most recent call last):
 File "<pyshell#3>", line 1, in <module>
 assert False
AssertionError

>>> assert 1==1
>>> assert 1==0
Traceback (most recent call last):
 File "<pyshell#1>", line 1, in <module>
 assert 1==0
AssertionError

>>> assert [1, 2] # 非空列表值得注意一下,虽说也没个啥,哈哈
>>> assert not [1, 2]
Traceback (most recent call last):
 File "<ipython-input-48-eae410664122>", line 1, in <module>
 assert not [1, 2]
AssertionError

为assert断言语句添加异常参数

assert的异常参数,其实就是在断言表达式后添加字符串信息,一般用来解释断言。格式如下:

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

举例请看之后的代码

一些重要的细节

老铁们可以试着运行一下以下代码段:

>>> assert None, 'None若作为布尔表达式,则相当于False'
>>> assert [], '空列表若作为布尔表达式,则相当于False'
>>> assert (), '空元组若作为布尔表达式,则相当于False'
>>> assert {}, '空字典若作为布尔表达式,则相当于False'
>>> assert set(), '空集合若作为布尔表达式,则相当于False'
>>> assert '', '空字符串若作为布尔表达式,则相当于False'

当然还有奇葩的numpy

>>> a = np.array([1, 2])
>>> assert a 
Traceback (most recent call last):

 File "<ipython-input-45-63e954d94e9b>", line 1, in <module>
 assert aa

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

是的,你没看错,哪里有numpy,哪里就有Use a.any() or a.all()......

最后,再试一试这俩吧:

>>> assert np.array([])
>>> assert np.array([[], []])

是的,只要是空的,甭管是几维的,都相当于False

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python实现递归遍历文件夹并删除文件
Apr 18 Python
python 中的divmod数字处理函数浅析
Oct 17 Python
Python 数据处理库 pandas进阶教程
Apr 21 Python
pygame实现俄罗斯方块游戏
Jun 26 Python
Python3 pandas 操作列表实例详解
Sep 23 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
Oct 11 Python
TensorBoard 计算图的查看方式
Feb 15 Python
pandas读取csv文件提示不存在的解决方法及原因分析
Apr 21 Python
python3通过qq邮箱发送邮件以及附件
May 20 Python
python使用建议技巧分享(三)
Aug 18 Python
Python GUI库Tkiner使用方法代码示例
Nov 27 Python
python中的unittest框架实例详解
Feb 05 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
Jul 28 #Python
解决Django Static内容不能加载显示的问题
Jul 28 #Python
基于Django静态资源部署404的解决方法
Jul 28 #Python
Python占用的内存优化教程
Jul 28 #Python
解决Django加载静态资源失败的问题
Jul 28 #Python
django之静态文件 django 2.0 在网页中显示图片的例子
Jul 28 #Python
python正则-re的用法详解
Jul 28 #Python
You might like
PHP Ajax实现页面无刷新发表评论
2007/01/02 PHP
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
2020/05/02 PHP
javascript中的继承实例代码
2011/04/27 Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
2013/11/13 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
Bootstrap基本样式学习笔记之标签(5)
2016/12/07 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
Angular实现响应式表单
2017/08/04 Javascript
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
详解React 的几种条件渲染以及选择
2018/10/23 Javascript
vue使用Font Awesome的方法步骤
2019/02/26 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
2019/11/01 Javascript
js实现左右轮播图
2020/01/09 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
[01:10:57]Liquid vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[33:33]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第二场 11.27
2020/11/30 DOTA
Python求解平方根的方法
2015/03/11 Python
python和bash统计CPU利用率的方法
2015/07/10 Python
Python获取央视节目单的实现代码
2015/07/25 Python
Python实现word2Vec model过程解析
2019/12/16 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
优纳科技软件测试面试题
2012/05/15 面试题
2014年清明节网上祭英烈寄语
2014/04/09 职场文书
六一儿童节开幕词
2015/01/29 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL