Python assert语句的简单使用示例
作者:王尼玛 发布时间:2023-06-12 16:38:58
标签:python,assert,语句
写在前面
最近每日一更,我这菜鸡都有点儿不好意思了
简单介绍
简单用法是:
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
来源:https://segmentfault.com/a/1190000019894418


猜你喜欢
- 你的SQL Server最近是否运行不正常?不,我指的不是我们肯定会遇到的通常的数据库和操作系统问题。我的意思是,你是否经历过服务器的反应迟
- 前言:在前面一些文章中,经常能看到介绍某某参数的作用,可能有些小伙伴仍搞不清楚 MySQL 参数是啥。本篇文章我们来聊聊 MySQL 参数,
- 相关代码:JavaScript写的日期时间控件,很好用 13个超酷的js显示时间效果 <html><head><
- 制作文件备份打开原文件 old_f_name = input(“请输入备份的文件路径:”) old_f = open(old_f_name,
- 代码如下:'============================== '格式化HTML,SDCMS加强版 '==
- 实例如下:</pre><pre name="code" class="python"
- 前言随着科技的发展,人脸识别技术在许多领域得到的非常广泛的应用,手机支付、银行身份验证、手机人脸解锁等等。识别废话少说,这里我们使用 ope
- 前言:话说,我一直没能理解美工究竟是什么(这是一篇投稿)。因为要求确实很多。目前,我只能理解成,是前端开发+页面设计+用户体验设计的全能手。
- Python使用Pika库(安装:sudo pip install pika)可以操作RabbitMQ消息队列服务器(安装:sudo apt
- 使用MySQL8,在整合ssm框架,用mybatis逆向工程生成的代码测试时,执行到数据库查询前均正常,但进行查询时,便卡主没有反应了,设置
- 现在算法是大厂面试的必考题,而且越来越难,已经不是简单的列表,字符串操作了,会涉及到各种数据结结构。单链表的反转也是经常考的一道题,里面故在
- 作为临时测试用python命令来搭建web测试是最好不过的选择了;CD切换到当前目录只需要一句python命令就迅速搭建好了简单的web服务
- 异常,不应该存在,但是我们有时候会遇到这样的情况,比如我们监控服务器的时候,每一秒去采集一次信息,那么有一秒没有采集到我们想要的信息,但是下
- YUI 中的 Grids CSS 主要有三个部分值得大家关注和学习:Yahoo!网站性能最佳体验的34条黄金守则—内容 1、布局的思想:使用
- Django分页功能的实现打开命令行窗口,创建Django工程,使用以下命令:django-admin startproject djpag
- 本文实例为大家分享了Python Web框架Tornado运行和部署的详细内容,供大家参考,具体内容如下一、运行和部署因为Tornado内置
- 本文讲述一个用Python写的小程序,用于有注入点的链接,以检测当前数据库用户是否为sa,详细代码如下:# Code by zhaoxiao
- 1. 返回列表和标量(Scalar)前面我们注意到Query对象可以返回可迭代的值(iterator value),然后我们可以通过for
- 最近开始学习Python,但只限于看理论,编几行代码,觉得没有意思,就想能不能用Python编写可视化的界面。遂查找了相关资料,发现了PyQ
- 分割单词将一个标识符分割成若干单词存进列表,便于后续命名法的转换先引入正则表达式包import re至于如何分割单词看个人喜好,如以常见分隔