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错误” 。