资讯专栏INFORMATION COLUMN

简单瞅瞅Python assert 语句

2json / 810人阅读

摘要:写在前面最近每日一更,我这菜鸡都有点儿不好意思了简单介绍简单用法是让我们用程序来测试这个,如果相当于,那么一个出来。

写在前面

最近每日一更,我这菜鸡都有点儿不好意思了

简单介绍

简单用法是:

assert expression

让我们用程序来测试这个expression,如果expression相当于False,那么raise一个AssertionError出来。
即逻辑上等同于:

if not expression:
    raise AssertionError

简单看看这些例子:

>>> assert True
>>> assert False
Traceback (most recent call last):
  File "", line 1, in 
    assert False
AssertionError

>>> assert 1==1
>>> assert 1==0
Traceback (most recent call last):
  File "", line 1, in 
    assert 1==0
AssertionError

>>> assert [1, 2] # 非空列表值得注意一下,虽说也没个啥,哈哈
>>> assert not [1, 2]
Traceback (most recent call last):
  File "", line 1, in 
    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 "", line 1, in 
    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://www.ucloud.cn/yun/45259.html

相关文章

  • 简单瞅瞅Python zip()函数

    摘要:方法一直持续到参数序列中最短的可迭代对象耗尽,然后它抛出。如需转换为列表,需使用内置函数转换。这里简单列一下函数的例子打包为元组的列表,元素个数与最短的列表一致也可以转换为字典 zip()函数,其实看help(zip)即可 | Return a zip object whose .__next__() method returns a tuple where| the i-th e...

    lwx12525 评论0 收藏0
  • Python中不尽如人意的断言Assertion

    摘要:为何不尽如人意中的断言用起来非常简单,你可以在后面跟上任意判断条件,如果断言失败则会抛出异常。中的断言可读性很好,而且智能提示也很方便你通过轻松完成各种断言语句。而且它的断言信息简洁明了,不多不少。 Python Assert 为何不尽如人意 Python中的断言用起来非常简单,你可以在assert后面跟上任意判断条件,如果断言失败则会抛出异常。 >>> assert 1 + 1 ==...

    The question 评论0 收藏0
  • python学习笔记-python的调试

    摘要:但是在调试之后,我们还需要手动删除语句,比较麻烦。关闭后,语句就不再生效。的好处有很多,一个是可以制定输出特定级别的信息。我们可以用对进行简单的配置。小于该的都会被忽略。但是在处理很长的代码的时候,显得效率低下。 我们在写代码的时候,往往会有一大堆错误。我们该如何调试呢? 用print语句打印 我们可以用print语句打印我们想要的内容,然后在输出中查看。 print hah 但是在调...

    hufeng 评论0 收藏0
  • python错误、异常和程序调试

    摘要:关键字拼写错误时会提示语法错误,而变量名函数名拼写错误会在运行时给出的错误提示脚本程序不符合的语法规范例如如少了括号,冒号等符号,以及表达式书写错误等。异常的处理异常是程序在运行过程中引发的错误。 异常是Python程序在运行过程中引发的错误,如果程序中引发了未进行处理的异常,程序就会由于异常而终止运行,只有为程序添加异常处理,才能使程序更健壮。 Python对异常的处理,有它自己的语...

    Object 评论0 收藏0
  • SICP Python 描述 1.5 控制

    摘要:函数体由表达式组成。我们说头部控制语句组。于是,函数体内的赋值语句不会影响全局帧。包含了多种假值,包括和布尔值。布尔值表示了逻辑表达式中的真值。执行测试以及返回布尔值的函数通常以开头,并不带下划线例如等等。返回值之后会和预期结果进行比对。 1.5 控制 来源:1.5 Control 译者:飞龙 协议:CC BY-NC-SA 4.0 我们现在可以定义的函数能力有限,因为我们还不知...

    mingzhong 评论0 收藏0

发表评论

0条评论

2json

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<