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进行稳定可靠的文件操作详解
Dec 31 Python
Python脚本实现DNSPod DNS动态解析域名
Feb 14 Python
python操作sqlite的CRUD实例分析
May 08 Python
Python实现数据库编程方法详解
Jun 09 Python
Python 的描述符 descriptor详解
Feb 27 Python
python调用并链接MATLAB脚本详解
Jul 05 Python
python2与python3爬虫中get与post对比解析
Sep 18 Python
Python使用selenium + headless chrome获取网页内容的方法示例
Oct 16 Python
django中media媒体路径设置的步骤
Nov 15 Python
Python下利用BeautifulSoup解析HTML的实现
Jan 17 Python
python3中使用__slots__限定实例属性操作分析
Feb 14 Python
python爬取网页版QQ空间,生成各类图表
Jun 02 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
基于mysql的论坛(5)
2006/10/09 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
laravel异步监控定时调度器实例详解
2019/06/21 PHP
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
jquery命令汇总,方便使用jquery的朋友
2012/06/26 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
js中for in的用法示例解析
2013/12/25 Javascript
javascript写的异步加载js文件函数(支持数组传参)
2014/06/07 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
2016/09/05 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
浅谈js函数三种定义方式 &amp; 四种调用方式 &amp; 调用顺序
2017/02/19 Javascript
从零学习node.js之利用express搭建简易论坛(七)
2017/02/25 Javascript
Vue2.x中的Render函数详解
2017/05/30 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
Angular 容器部署的方法
2018/04/17 Javascript
Python数据结构与算法之使用队列解决小猫钓鱼问题
2017/12/14 Python
python的staticmethod与classmethod实现实例代码
2018/02/11 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
浅谈tensorflow模型保存为pb的各种姿势
2020/05/25 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
英国最大的宠物食品和宠物用品网上零售商: Zooplus
2016/08/01 全球购物
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
学生个人求职自荐信格式
2013/09/23 职场文书
公务员总结性个人自我评价
2013/12/05 职场文书
幼儿园五一活动方案
2014/02/07 职场文书
《兰亭集序》教学反思
2014/02/11 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
庐山导游词
2015/02/03 职场文书
员工升职自荐信
2015/03/27 职场文书
小学二年级语文教学反思
2016/03/03 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang
一文简单了解MySQL前缀索引
2022/04/03 MySQL