Python教程-Python 断言关键字

Python 断言(assert)关键字被定义为一种调试工具,用于测试条件。断言主要是在程序中断言或确定某个事实。例如,在编写除法函数时,除数不应为零,您可以断言除数不等于零。
它仅是一个布尔表达式,其中包含一个条件或表达式,检查条件返回 true 还是 false。如果它为 true,则程序不执行任何操作,并移动到下一行代码。但是,如果为 false,则引发一个 AssertionError 异常,可以附带错误消息。
断言的主要任务是通知开发人员有关程序中不可恢复的错误,例如 "文件未找到",可以说断言是程序的内部自检。在任何应用程序开发领域中,它对于测试或质量保证都是至关重要的。断言关键字的语法如下所示。
语法
assert condition, error_message(optional)
为什么使用断言
它是一种调试工具,其主要任务是检查条件。如果发现条件为 true,则继续执行下一行代码;如果不是,则停止所有操作并抛出错误。它指出代码中的错误。
在 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 列表的输出,但在那之后,我们遇到了错误 AssertionError: List is empty。断言条件对于 scores2 列表是满足的,因此允许程序继续运行。但是,scores1 不满足条件,因此会出现 AssertionError。
示例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 value is :
运行时异常:
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 解释器生成了运行时异常,并在控制台显示了 "除以 0 的错误"。