Python 断言
断言是一种健全性检查,当你完成程序的测试时,可以打开或关闭。
- 断言的最简单的理解方式是将其看作是一个“如果发生则抛出异常”的语句。一个表达式进行测试,如果结果为假,则会抛出一个异常。
-
断言是通过assert语句执行的,这是Python中的最新关键字,引入于1.5版本。
-
程序员经常在函数的开始处放置断言来检查有效输入,并在函数调用后检查有效输出。
assert语句
当Python遇到assert语句时,会计算相应的表达式,希望其结果为真。如果表达式为假,则Python会引发AssertionError异常。
assert的 语法 如下:
assert Expression[, Arguments]
如果断言失败,Python会将ArgumentExpression作为AssertionError的参数使用。AssertionError异常可以像其他异常一样被捕获和处理,使用try-except语句。如果它们没有被处理,它们将终止程序并产生一个回溯。
示例
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)
它将产生以下 输出 −
enter marks out of 100
marks obtained: 75
Traceback (most recent call last):
File "C:\Users\user\example.py", line 7, in <module>
assert num>=0 and num<=100
^^^^^^^^
AssertionError
显示自定义错误消息,只需在assert语句中的表达式后面放置一个字符串−
assert num>=0 and num<=100, "only numbers in 0-100 accepted"
AssertionError也是一个内置的异常。因此,它可以被用作except块中的参数。当输入引起AssertionError异常时,它将被except块处理。except块将assert语句中的字符串作为异常对象处理。
try:
num=int(input('enter a number'))
assert (num >=0), "only non negative numbers accepted"
print (num)
except AssertionError as msg:
print (msg)