📅  最后修改于: 2020-10-28 01:02:37             🧑  作者: Mango
Python assert关键字被定义为测试条件的调试工具。断言主要是在程序中自信地声明或陈述事实的假设。例如,在编写除法函数,除数不应为零,并且您断言除数不等于零。
它只是具有条件的布尔表达式,或者表达式检查条件是否返回true或false。如果为真,则该程序不执行任何操作,并且移至下一行代码。但是,如果为false,则会引发AssertionError异常以及可选的错误消息。
断言的主要任务是通知开发人员程序中不可恢复的错误,例如“找不到文件”,正确地说,断言是程序的内部自检。对于任何应用程序开发领域中的测试或质量保证,这都是最重要的。 assert关键字的语法如下。
句法
assert condition, error_message(optional)
它是一种调试工具,其主要任务是检查条件。如果发现条件为真,则移至代码的下一行;否则,停止所有操作并引发错误。它指出了代码中的错误。
此示例显示了使用错误消息进行断言的工作。
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 list的输出,但是此后,我们收到一个错误AssertionError:List为空。 asserts2列表满足断言条件,并允许程序继续运行。但是,scores1不满足条件,并给出了AssertionError。
本示例在控制台中显示“被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
assert y != 0, "Divide by 0 error"
AssertionError: Divide by 0 error
说明:
在上面的示例中,我们初始化了一个整数变量,即x = 7,y = 0,并尝试将x / y的值print为输出。 Python解释器生成了Runtime Exception,因为assert关键字发现除数为零,然后在控制台中显示“除以0的错误”。