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的三目运算符和not in运算符使用示例
Mar 03 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 Python
python之Socket网络编程详解
Sep 29 Python
Flask Web开发入门之文件上传(八)
Aug 17 Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 Python
python实现顺时针打印矩阵
Mar 02 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
Nov 29 Python
python中property和setter装饰器用法
Dec 19 Python
PyCharm使用之配置SSH Interpreter的方法步骤
Dec 26 Python
python属于解释语言吗
Jun 11 Python
Python爬虫进阶之爬取某视频并下载的实现
Dec 08 Python
python中用ggplot绘制画图实例讲解
Jan 26 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中截取中文字符串的代码小结
2011/07/17 PHP
php定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
2015/11/23 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
利用js编写响应式侧边栏
2016/09/17 Javascript
关于Javascript中defer和async的区别总结
2016/09/20 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
2018/08/30 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
Python实现选择排序
2017/06/04 Python
windows下python虚拟环境virtualenv安装和使用详解
2019/07/16 Python
python pandas 时间日期的处理实现
2019/07/30 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
Collection和Collections的区别
2016/05/02 面试题
数组越界问题
2015/10/21 面试题
请解释virtual关键字的含义
2015/06/17 面试题
Linux如何压缩可执行文件
2014/03/27 面试题
2015年中学元旦晚会活动方案
2014/12/09 职场文书
2015年生产车间工作总结
2015/04/22 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/04/22 无线电
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python
使用Django框架创建项目
2022/06/10 Python