Python 断言

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)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程