什么是断言?
断言是你程序中自信地断言或陈述一个事实的语句。例如,在编写一个除法函数时,你确信除数不应该为零,你断言除数不等于零。
断言只是布尔表达式,用于检查条件是否返回 true。如果为 true,程序不做任何事情并移动到下一行代码。但是,如果为 false,程序将停止并抛出错误。
它也是一个调试工具,因为它会在错误发生时立即停止程序并显示错误。
我们可以通过下面的流程图来清楚地了解

Python assert 语句
Python 有内置的 assert
语句,用于在程序中使用断言条件。 assert
语句有一个条件或表达式,它应该总是为 true。如果条件为 false,assert 会停止程序并给出 AssertionError
。
在 Python 中使用 Assert 的语法
assert <condition>
assert <condition>,<error message>
在 Python 中,我们可以如上所述以两种方式使用 assert
语句。
assert
语句有一个条件,如果条件不满足,程序将停止并给出AssertionError
。assert
语句还可以有一个条件和一个可选的错误消息。如果条件不满足,assert 会停止程序并给出AssertionError
以及错误消息。
让我们举个例子,我们有一个函数,它将计算用户传入值的平均值,并且该值不应该是一个空列表。我们将使用 assert
语句来检查参数,如果传入列表的长度为零,程序将停止。
示例 1:不带错误消息使用 assert
def avg(marks):
assert len(marks) != 0
return sum(marks)/len(marks)
mark1 = []
print("Average of mark1:",avg(mark1))
当我们运行上述程序时,输出将是
AssertionError
我们得到了一个错误,因为我们向 assert
语句传入了一个空列表 mark1,条件变为 false,assert 停止程序并给出 AssertionError
。
现在让我们传入另一个将满足 assert
条件的列表,看看输出会是什么。
示例 2:带错误消息使用 assert
def avg(marks):
assert len(marks) != 0,"List is empty."
return sum(marks)/len(marks)
mark2 = [55,88,78,90,79]
print("Average of mark2:",avg(mark2))
mark1 = []
print("Average of mark1:",avg(mark1))
当我们运行上述程序时,输出将是
Average of mark2: 78.0 AssertionError: List is empty.
我们传入了一个非空列表 mark2 和一个空列表 mark1 给 avg()
函数,我们得到了 mark2 列表的输出,但之后我们得到了一个错误 AssertionError: List is empty
。 mark2 列表满足了 assert
条件,程序继续运行。然而,mark1 不满足条件并给出了 AssertionError
。
要记住的关键点
- 断言是代码中总是应该为 true 的条件或布尔表达式。
assert
语句接受一个表达式和一个可选消息。assert
语句用于检查参数的类型、值和函数的输出。assert
语句用作调试工具,因为它会在错误发生的点停止程序。