Python assert断言声明,遇到错误则立即返回问题

作者:Sesen_s 时间:2022-05-10 13:38:50 

assert断言声明,遇到错误则立即返回

在使用python语言开发深度学习模型时,经常会遇到模型运行结束时才会发现的崩溃状态,或者得到的结果不是预想的那样。

这就需要在模型中善于使用assert语句,来判断某些变量的类型或者shape等是否满足要求。

用法为 :

assert expression(你想判断的内容)

# 等价于
if not expression:
    raise AssertionError

例如:

在逻辑回归中,z = W的转置*X,样本X含有五个特征,则我们在设置W时。要一直保证其shape为[5,1]

>>> import numpy as np
>>> w = np.zeros((5,1))
>>> w
array([[0.],
       [0.],
       [0.],
       [0.],
       [0.]])
>>> assert(w.shape == (5,1))
>>> assert(w.shape == (2,1))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError

assert断言函数

说明一下代码适用于python2,不完全适用与py3

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

python assert断言的作用

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

assert断言语句的语法格式

  • assert python 怎么用?

  • expression assert 表达式

assert语句用来声明某个条件是真的。

如果你非常确信某个你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么assert语句是应用在这种情形下的理想语句。

当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://blog.csdn.net/weixin_40546602/article/details/89407713

标签:Python,assert,断言
0
投稿

猜你喜欢

  • 详解链接的rel与target

    2007-11-05 18:25:00
  • 如何使用SQLServer数据库查询累计值

    2009-03-16 14:43:00
  • Html的几个小技巧

    2011-04-29 14:02:00
  • Golang中的sync.WaitGroup用法实例

    2023-08-31 03:57:28
  • 公用样式模板的设计制作

    2009-09-13 21:27:00
  • PHP中SESSION使用中的一点经验总结

    2023-11-19 11:48:54
  • 2011年网页设计发展趋势

    2011-01-10 20:45:00
  • 如何用METADATA替换ADOVBS.INC?

    2010-06-12 12:54:00
  • 错误 2812: 未能找到存储过程 'master.dbo.xp_fileexist'

    2010-07-22 19:50:00
  • HMAC算法--asp源码

    2009-08-28 12:51:00
  • SQL技巧:快速掌握一些异常精妙的SQL语句

    2009-09-02 13:55:00
  • laravel入门知识点整理

    2023-05-31 13:42:33
  • CSS和HTML与前端技术层图示

    2010-04-05 21:54:00
  • mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法

    2023-11-18 06:10:15
  • ASP生成静态网页各种方法收集整理

    2008-02-18 19:25:00
  • asp如何向前端显示用户请求的信息?

    2010-06-09 18:52:00
  • SQL Server 1069错误(由于登录失败而无法启动服务)解决方法

    2008-09-12 17:35:00
  • Jsp+Servlet实现文件上传下载 删除上传文件(三)

    2023-06-27 16:29:29
  • 讲解SQL Server海量数据导入的最快方法

    2008-12-05 16:21:00
  • ASP 生成静态新闻列表

    2009-03-03 12:25:00
  • asp之家 网络编程 m.aspxhome.com