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实现读取邮箱中的邮件功能示例【含文本及附件】
Aug 05 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
Jan 09 Python
python提取图像的名字*.jpg到txt文本的方法
May 10 Python
python读取Kafka实例
Dec 23 Python
Python 从attribute到property详解
Mar 05 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
Mar 10 Python
Python参数传递及收集机制原理解析
Jun 05 Python
Python通过kerberos安全认证操作kafka方式
Jun 06 Python
在pycharm中debug 实时查看数据操作(交互式)
Jun 09 Python
Django修改app名称和数据表迁移方案实现
Sep 17 Python
Python在后台自动解压各种压缩文件的实现方法
Nov 10 Python
python基础入门之字典和集合
Jun 13 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中ob_start()函数的用法
2013/06/24 PHP
php验证码生成器
2017/05/24 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
2012/02/03 Javascript
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
2012/02/27 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
JavaScript错误处理和堆栈追踪详解
2017/04/18 Javascript
如何在 Vue.js 中使用第三方js库
2017/04/25 Javascript
javascript简单写的判断电话号码实例
2017/05/24 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
微信小程序遍历Echarts图表实现多个饼图
2019/04/25 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
简单上手Python中装饰器的使用
2015/07/12 Python
python变量不能以数字打头详解
2016/07/06 Python
Python 模拟购物车的实例讲解
2017/09/11 Python
用TensorFlow实现多类支持向量机的示例代码
2018/04/28 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
2018/05/30 Python
python实现机器学习之多元线性回归
2018/09/06 Python
Django之模型层多表操作的实现
2019/01/08 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
python中time、datetime模块的使用
2020/12/14 Python
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
英语翻译系毕业生求职信
2013/09/29 职场文书
大学生就业自荐信
2013/10/26 职场文书
公司年会抽奖活动主持词
2014/03/31 职场文书
安全协议书
2014/04/23 职场文书
2015年外贸业务员工作总结范文
2015/05/23 职场文书
叶问观后感
2015/06/15 职场文书
sql字段解析器的实现示例
2021/06/23 SQL Server
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python