Python 简明教程
Python - Assertions
Assertions in Python
Python 中的断言是断言或假定条件为真的语句。如果条件变为 false,Python 会引发 AssertionError 异常。它们用于检测如果没有正确的代码就永远不会发生的编程错误。
-
最简单的考虑 assertions 的方法是将其比作 raise-if 语句(更准确地说,是 raise-if-not 语句)。测试表达式,如果结果为 false,则引发异常。
-
assertions 由 assert 语句执行,这是 Python 中最新的关键字,在 1.5 版中引入。
-
程序员经常在函数开始时放置断言来检查有效输入,并在函数调用后检查有效输出。
The assert Statement
在 Python 中,断言使用 assert 关键字,后跟一个表达式。如果表达式计算结果为 False,会引发 AssertionError。以下是断言的语法 −
assert condition, message
其中,
-
condition − 应该为 true 的布尔表达式。
-
message (optional) − 如果断言失败,要显示的可选消息。
Using Assertions
断言通常在开发和测试阶段使用,以检查始终保持为真的条件。
Example
在以下示例中,我们使用断言来确保变量“num”介于“0”到“100”的有效范围内。如果断言失败,Python 会引发“AssertionError”,阻止后续 print 语句的进一步执行 −
print('Enter marks out of 100:')
num = 75
assert num >= 0 and num <= 100
print('Marks obtained:', num)
num = 125
assert num >= 0 and num <= 100
print('Marks obtained:', num) # This line won't be reached if assertion fails
以下是上面代码的输出: -
Enter marks out of 100:
Marks obtained: 75
Traceback (most recent call last):
File "/home/cg/root/66723bd115007/main.py", line 7, in <module>
assert num >= 0 and num <= 100
AssertionError
Custom Error Messages
要在断言失败时显示自定义错误消息,请在 assert 语句的表达式后包含一个字符串 −
assert num >= 0 and num <= 100, "Only numbers in the range 0-100 are accepted"
Handling AssertionError
可以使用 try-except 块像处理任何其他异常一样捕获并处理断言。如果它们未得到处理,它们将终止程序并生成回溯 −
try:
num = int(input('Enter a number: '))
assert num >= 0, "Only non-negative numbers are accepted"
print(num)
except AssertionError as msg:
print(msg)
它将生成如下输出:
Enter a number: -87
Only non-negative numbers are accepted