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.

说明:在上例中,我们将一个非空列表scores2 和一个空列表scores1 传递给了 avg() 函数。我们成功接收到scores2 列表的输出,但在此之后,我们收到一个错误评估错误:列表为空。断言条件由scores2 列表满足,并允许程序继续运行。但是,scores1 不满足条件,给出一个 AssertionError。

示例 2:

此示例显示了控制台中的“Divide by 0 error”。

# 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关键字发现除数为零,然后在控制台中显示 “Divide by 0 error误”

原文:https://www.javatpoint.com/python-assert-keyword