Python assert 断言函数「建议收藏」

使用assert断言是学习python一个非常好的习惯,pythonassert断言句语格式及用法很简单。在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件时就崩溃,这时候就需要assert断言的帮助。本文主要是讲assert断言的基础知识。pythonassert断言的作用pythonassert断言是声明其布尔值必须为真的判定,如果发生异

大家好,又见面了,我是你们的朋友全栈君。

使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单。在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件时就崩溃,这时候就需要assert断言的帮助。本文主要是讲assert断言的基础知识。

python assert断言的作用

python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。

assert断言语句的语法格式

    assert python 怎么用?
    expression assert 表达式
  1. assert语句用来声明某个条件是真的。
  2. 如果你非常确信某个你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么assert语句是应用在这种情形下的理想语句。
  3. 当assert语句失败的时候,会引发一AssertionError。

下面做一些assert用法的语句供参考:

>>assert 1==1
>> assert 1 == 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError

>>assert 2+2==2*2
>>assert len(['my boy',12])<10
>>assert range(4)==[0,1,2,3]
>>> mylist = ['item']
>>assert len(mylist) >= 1
>>mylist.pop()
'item'
>>assert len(mylist) >= 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError

如何为assert断言语句添加异常参数

assert的异常参数,其实就是在断言表达式后添加字符串信息,用来解释断言并更好的知道是哪里出了问题。格式如下:

    assert expression [, arguments]
    assert 表达式 [, 参数]

自定异常

class ShortInputException(Exception):
    '''自定义的异常类'''
    def __init__(self, length, atleast):
        #super().__init__()
        self.length = length
        self.atleast = atleast

def main():
    try:
        s = input('请输入 --> ')
        if len(s) < 3:
            # raise引发一个你定义的异常
            raise ShortInputException(len(s), 3)
    except ShortInputException as result:#x这个变量被绑定到了错误的实例
        print('ShortInputException: 输入的长度是 %d,长度至少应是 %d'% (result.length, result.atleast))
    else:
        print('没有异常发生.')

main()

原文地址

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128602.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SSH命令及使用说明

    SSH命令及使用说明

    2021年6月16日
    105
  • docker restart=always_MySQL having

    docker restart=always_MySQL having在面试中关于多线程同步,你必须要思考的问题一文中,我们知道glibc的pthread_cond_timedwait底层是用linuxfutex机制实现的。理想的同步机制应该是没有锁冲突时在用户态利用原子指令就解决问题,而需要挂起等待时再使用内核提供的系统调用进行睡眠与唤醒。换句话说,在用户态的自旋失败时,能不能让进程挂起,由持有锁的线程释放锁时将其唤醒?如果你没有较深入地考虑过这个问题,很可能…

    2022年9月21日
    2
  • CListCtrl 扩展风格设置方法—SetExtendedStyle和ModifyStyleEx

    CListCtrl 扩展风格设置方法—SetExtendedStyle和ModifyStyleEx想把ListCtr设置为整行高亮显示错误的方法为:1clistctrl.ModifyStyleEx(0,LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);正确的方法为:1DWORDdwStyle=clistctrl.GetExtendedStyle();2dwStyle|=LVS_EX_FULLROWSELECT|L…

    2022年7月19日
    15
  • thinkphp一键清除缓存的方法

    thinkphp一键清除缓存的方法

    2021年10月26日
    39
  • Java数组

    Java数组12.Java数组一、什么是数组数组可以理解成一个包含相同类型的有序数字集合也称储存一组数据的空间数组属于引用数据类型int[]a={1,2,3,4,5};集合内的数据称为元素

    2022年7月4日
    17
  • ICEM二维网格

    ICEM二维网格非结构网格结构网格拓扑拓扑完建立part边界条件,然后创建block拓扑完后进行边界条件关联全局网格设置转载于:https://www.cnblogs.com/Jay-CFD/p/8795203.html…

    2022年5月13日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号