python中断言语句的语法,python断言语句的语法【assert语句】

本文介绍了Python中的assert语句,用于检查代码中预期的条件是否满足。当条件不成立时,assert会抛出AssertionError异常。示例展示了如何在用户输入数值时使用assert确保数值大于1,从而避免程序错误。此外,还提供了一个带有异常处理的代码示例,演示了在while循环中使用try-except捕获并处理异常的情况。
摘要由CSDN通过智能技术生成

89f13428de80cb08afbd313899ed528c.gif

assert语句又称作断言,指的是期望用户满足指定的条件。当用户定义的约束条件不满足的时候,它会触发AsserionError异常,所以assert语句可以当作条件式的raise语句。assert语句的格式为:assert 逻辑表达式, data  # dat是可选的

在上述格式中,assert后面紧跟一个逻辑表达式,相当于条件。data通常是一个字符串;当表达式的结果为False时,作为异常类型的描述信息使用。逻辑上等同于:if not 逻辑表达式:

raise AssertionError(data)

断言的示例如下:

a = 0

assert a!=0, "a 的值不能为0"

上述示例中,定义了变量a的值为0,然后使用assert断言a的值不等于0,所以程序出现

如下错误信息:Traceback (most recent call last):

File "C:\Users\itcast\PycharmProjects\bili_new\test.py", line 2, in 

assert a!=0, "a 的值不能为0"

AssertionError: a 的值不能为0

assert语句用来收集用户定义的约束条件,而不是捕捉内在的程序设计错误,因为Python

会自行收集程序的设计错误,会在遇见错误时自动引发异常。

下面通过一个案例来介绍:while True:

try:

x = int(input('请输入第一个数:'))

y = int(input('请输入第二数'))

assert x > 1 and y >1, "a和b的值必须大于1" # 断言

a = x

b = y

if a 

a, b = b, a   # a与b的值互换

while b!=0:       # 使用辗转相除法求最大公约数

temp = a % b

a = b

b = temp

else:

print('%s和%s的最大公约数为:%s' % (x, y, a))

break

except Exception as result:

print('捕捉到异常:\n', result)

在上面案例中,整个程序位于while循环内部,循环中有个try-except异常处理语句。在try里面,第3~4行从键盘获取了int类型的两个数值x和y ,第5行断言x和y的值必须都大于1,第6~7行分别把x和y的值赋值给a和b,第8~9行使用if语句判断,如果a比b的小,就互换a和b的值。

第10~16行使用while-else执行循环。如果b不等于0,就使用辗转相除法求最大公约数;如果是其他情况,就直接输出最大公约数的值,并使用break终止循环。

在except中使用Exception捕捉所有的异常,并获取异常对应的描述信息。

运行程序,在控制台输入第1个数为1,第2个数为5,具体结果如下图所示。

1c2590e3ec9119401187970e7188be6e.png

在控制台再次输入第1个数为15,第2个数为55,具体结果如下图所示。

a9f3ee5ffc9cfd94cd6a4ebe1fc55df0.png

猜你喜欢:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值