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绘图方法实例入门
May 19 Python
python中getaddrinfo()基本用法实例分析
Jun 28 Python
Python基础语法(Python基础知识点)
Feb 28 Python
利用Python实现命令行版的火车票查看器
Aug 05 Python
Python中文件I/O高效操作处理的技巧分享
Feb 04 Python
python虚拟环境的安装配置图文教程
Oct 20 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
Nov 24 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
Jun 19 Python
python多线程分块读取文件
Aug 29 Python
Python + Flask 实现简单的验证码系统
Oct 01 Python
离线状态下在jupyter notebook中使用plotly实例
Apr 24 Python
Python  lambda匿名函数和三元运算符
Apr 19 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中$_FILES的使用以及注意事项
2013/07/05 PHP
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
究竟什么是Node.js?Node.js有什么好处?
2015/05/29 Javascript
jquery实现九宫格大转盘抽奖
2015/11/13 Javascript
jQuery UI Bootstrap是什么?
2016/06/17 Javascript
js判断checkbox是否选中个数的方法(超简单)
2016/08/19 Javascript
js转html实体的方法
2016/09/27 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
微信小程序 页面跳转及数据传递详解
2017/03/14 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
vue结合element-ui使用示例
2019/01/24 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
[44:21]Ti4 循环赛第四日 附加赛NEWBEE vs LGD
2014/07/13 DOTA
Python可跨平台实现获取按键的方法
2015/03/05 Python
在Python中使用dict和set方法的教程
2015/04/27 Python
微信 用脚本查看是否被微信好友删除
2016/10/28 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
用Python编写一个高效的端口扫描器的方法
2018/12/20 Python
在Python中COM口的调用方法
2019/07/03 Python
Python嵌入C/C++进行开发详解
2020/06/09 Python
django使用channels实现通信的示例
2020/10/19 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
超市端午节活动方案
2014/01/23 职场文书
企业人事任命书
2014/06/05 职场文书
相亲活动方案
2014/08/26 职场文书
演讲比赛的活动方案
2014/08/28 职场文书
售房协议书范本2014
2014/10/23 职场文书
求职信格式范文
2015/03/19 职场文书
护士自我推荐信范文
2015/03/24 职场文书
2015年英语教学工作总结
2015/05/25 职场文书
大学生活感想
2015/08/10 职场文书
MySQL 数据类型选择原则
2021/05/27 MySQL