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 02 Python
使用Python的Flask框架实现视频的流媒体传输
Mar 31 Python
Python字符串和字典相关操作的实例详解
Sep 23 Python
Python内置模块hashlib、hmac与uuid用法分析
Feb 12 Python
python爬虫之xpath的基本使用详解
Apr 18 Python
Tensorflow卷积神经网络实例
May 24 Python
浅谈关于Python3中venv虚拟环境
Aug 01 Python
python3+selenium自动化测试框架详解
Mar 17 Python
简单了解django orm中介模型
Jul 30 Python
Python FtpLib模块应用操作详解
Dec 12 Python
详解如何在PyCharm控制台中输出彩色文字和背景
Aug 17 Python
利用Python将多张图片合成视频的实现
Nov 23 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和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
How to Auto Include a Javascript File
2007/02/02 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
js函数在frame中的相互调用详解
2014/03/03 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
RxJS的入门指引和初步应用
2019/06/15 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
python制作爬虫并将抓取结果保存到excel中
2016/04/06 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
TensorFlow变量管理详解
2018/03/10 Python
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
python实现狄克斯特拉算法
2019/01/17 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
2019/06/28 Python
python3中替换python2中cmp函数的实现
2019/08/20 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
2020/04/19 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
2020/09/11 Python
css3中transition属性详解
2014/09/02 HTML / CSS
物流仓储实习自我鉴定
2013/09/25 职场文书
九月份红领巾广播稿
2014/01/22 职场文书
给国外客户的邀请函
2014/01/30 职场文书
《假如》教学反思
2014/04/17 职场文书
广告学专业毕业生自荐信
2014/05/28 职场文书
2014年幼师工作总结
2014/11/22 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
2016年端午节寄语
2015/12/04 职场文书
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL
Nginx配置根据url参数重定向
2022/04/11 Servers