Python Assert关键字

Python Assert关键字

Python assert关键字被定义为一种用于测试条件的调试工具。断言主要是在程序中断言或自信地陈述一个事实。例如,在编写一个除法函数时,除数不应为零,你会断言除数不等于零。

它只是一个布尔表达式,它具有条件或表达式,检查条件返回真还是假。如果条件为真,程序不执行任何操作,并继续执行下一行代码。但如果条件为假,它会引发一个 AssertionError 异常,并附带一个可选的错误消息。

断言的主要任务是通知开发人员程序中无法恢复的错误,例如“文件未找到”,可以说断言是程序的内部自检。它在任何应用程序开发领域的测试或质量保证中都是最重要的。assert关键字的语法如下所示。

语法

assert condition, error_message(optional)  

为什么使用断言

断言是一种调试工具,其主要任务是检查条件。如果发现条件为真,则继续执行下一行代码;如果条件为假,则停止所有操作并抛出错误,指出代码中的错误。

在Python中使用断言

  • 检查函数的输出。
  • 用于测试代码。
  • 检查参数的值。
  • 检查有效输入。

示例1

此示例显示了带有错误消息的断言的工作原理。

def avg(scores):  
    assert len(scores) != 0,"The List is empty."  
    return sum(scores)/len(scores)  

scores2 = [67,59,86,75,92]  
print("The Average of scores2:",avg(scores2))  

scores1 = []  
print("The Average of scores1:",avg(scores1))  

输出:

The Average of scores2: 75.8
AssertionError: The List is empty.

说明: 在上面的示例中,我们向 avg() 函数传递了一个非空列表 scores2 和一个空列表 scores1 。我们成功地收到了 scores2 列表的输出,但之后,我们遇到了错误 AssertionError: List is empty 。断言条件被 scores2 列表满足,程序可以继续运行。然而, scores1 不满足条件,导致出现了一个断言错误。

示例2:

这个示例显示了控制台上的“除以0错误”。

# initializing number   
x = 7  
y = 0  
# It uses assert to check for 0   
print ("x / y value is : ")   
assert y != 0, "Divide by 0 error"  
print (x / y)   

输出:

x / y 的值是:

运行时异常:

Traceback (most recent call last):  
  File "main.py", line 6, in <module>  
    assert y != 0, "Divide by 0 error"  
AssertionError: Divide by 0 error  

说明:

在上面的示例中,我们初始化了一个整数变量,即x=7,y=0,并尝试将x/y的值作为输出打印出来。Python解释器生成了一个运行时异常,因为在assert关键字中发现了零作为除数,然后在控制台上显示了 “除以0错误”

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程