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

目录
  • assert断言声明,遇到错误则立即返回
  • assert断言函数
    • python assert断言的作用
    • assert断言语句的语法格式
    • 下面做一些assert用法的语句供参考

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()

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python中的断言(assert语句)

    目录 python断言assert语句 assert:python断言报错语句 1.设置assert报错语句 2.assert a,b python断言assert语句 assert语句的格式是[assert 表达式,返回数据],当表达式为False时则触发AssertionError异常 try: n=input("请输入一个数字:") assert n.isdigit(),"只能输入数字" print("你输入的是:",n) except E

  • Python3 assert断言实现原理解析

    语法格式如下: assert expression 等价于: if not expression: raise AssertionError assert 后面也可以紧跟参数: assert expression [, arguments] 等价于: if not expression: raise AssertionError(arguments) 以下为 assert 使用实例: >>> assert True # 条件为 true 正常执行 >>> assert

  • Python pass语句作用和Python assert断言函数的用法

    目录 一.Python pass语句 二.Python assert断言函数 三.Python assert断言函数用法 一.Python pass语句 在实际开发中,有时候我们会先搭建起程序的整体逻辑结构,但是暂时不去实现某些细节,而是在这些地方加一些注释,方面以后再添加代码, 请看下面的例子: age = int( input("请输入你的年龄:") ) if age < 12 :     print("婴幼儿") elif age >= 12 an

  • Python中断言Assertion的一些改进方案

    Python Assert 为何不尽如人意? Python中的断言用起来非常简单,你可以在assert后面跟上任意判断条件,如果断言失败则会抛出异常. >>> assert 1 + 1 == 2 >>> assert isinstance('Hello', str) >>> assert isinstance('Hello', int) Traceback (most recent call last): File "<input>

  • Python断言assert的用法代码解析

    在开发一个程序时候,与其让它运行时崩溃,不如在它出现错误条件时就崩溃(返回错误).这时候断言assert 就显得非常有用. python assert断言是声明布尔值必须为真的判定,如果发生异常就说明表达式为假. 可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常. assert的语法格式: assert expression 它的等价语句为: if not expression: raise AssertionError 这段代码用来检测数据类型

  • Python中优雅使用assert断言的方法实例

    目录 什么是 assert 断言 断言和异常的使用场景 使用断言的几个原则 建议不使用断言的情况: 总结 什么是 assert 断言 Assert statements are a convenient way to insert debugging assertions into a program 断言声明是用于程序调试的一个便捷方式.断言可以看做是一个 debug 工具,Python 的实现也符合这个设计哲学,在 Python 中 assert 语句的执行是依赖于__debug__这个内置

  • python assert断言的实例用法

    断言声明是一种方便的程序调试方式. 1.可将断言视为debug工具,Python的实现也符合这种设计理念.assert语句的执行依赖于__debug__,且默认值为True. 2.如果__debug__为True,则仅执行assert语句. 实例 assert 可以同时声明两个 expression,例如 assert expression1, expression2 等价于 if __debug__: if not expression1: raise AssertionError(expre

  • python3 assert 断言的使用详解 (区别于python2)

    python3 和python以前的版本有点不同 如果你断言的 语句正确 则什么反应都没有 但是如果你出错之后 就会报出 AssertionError 并且错误可以自己填写 格式 : assert+空格+要判断语句+双引号"报错语句" 例子: 出错时候 assert 1>5, "chucuo" 输出值为: --------------------------------------------------------------------------- As

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

    目录 assert断言声明,遇到错误则立即返回 assert断言函数 python assert断言的作用 assert断言语句的语法格式 下面做一些assert用法的语句供参考 assert断言声明,遇到错误则立即返回 在使用python语言开发深度学习模型时,经常会遇到模型运行结束时才会发现的崩溃状态,或者得到的结果不是预想的那样. 这就需要在模型中善于使用assert语句,来判断某些变量的类型或者shape等是否满足要求. 用法为 : assert expression(你想判断的内容)

  • python assert的用处示例详解

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

  • python生产环境禁用assert断言的方法

    目录 1. 背景 2.解决方案 2.1 禁用assert的策略 2.2 禁用的原理 3. 实施禁用策略 3.1 启动命令行的参数中,添加-O 3.2 设置PYTHONOPTIMIZE环境变量 4 使用断言的坑 1. 背景 在潜意识中, assert 是应用在unittest或pytest环境中, 不能应用到业务代码中, 因为断言会导致运行中断,对业务有损,并且消耗内存, 影响性能. 但不可否认, 使用断言非常方便调试代码 通过研读assert的文档, 发现断言是可以被关闭的,特此记录下 详细的介

  • Python assert关键字原理及实例解析

    这篇文章主要介绍了Python assert关键字原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python assert(断言)用于判断一个表达式,在表达式条件为 False 的时候触发异常. 断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况. 语法格式: assert expression 等价于: if not expression: raise AssertionError asser

  • Python常用断言函数实例汇总

    Python assert 语句,又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的值,如果值为真,则程序可以继续往下执行:反之,Python 解释器会报 AssertionError 错误. assert 语句的语法结构为: assert 表达式 assert 语句的执行流程可以用 if 判断语句表示(等效),如下所示: if 表达式==True: 程序继续执行 else: 程序报 AssertionError 错误 有读者可能会问,明明 assert 会令程序崩溃,为什

  • pytest之assert断言的具体使用

    背景 本文总结使用pytest编写自动化测试时常用的assert断言. 说明 本文将从以下几点做总结: 为测试结果作断言 为断言不通过的结果添加说明信息 为预期异常作断言 为失败断言自定义说明信息 为测试结果作断言 在断言方面,pytest框架比其他类似的框架(比如unittest)更加简洁,易用,我想这是我选择pytest作为自动化测试框架之一的原因之一. pytest的assert断言关键字支持使用python内置的assert表达式.可以理解为pytest的断言就是直接使用python自带

随机推荐