python assert的用法介绍(附代码)

python assert 句语格式及用法很简单。通常程序在运行完之后抛出异常,使用assert可以在出现有异常的代码处直接终止运行。 而不用等到程序执行完毕之后抛出异常。

python assert的作用

python assert如果发生异常就说明表达示为假。可以理解表示式返回 值为假 时就会触发异常。

assert语句的语法格式

1

2

assert expression [, arguments]

assert 表达式 [, 参数]

附加说明:assert也可以用于多个表达式的: assert expression1, expression2。
注意:表达式=false 时,则执行其后面的异常。

我们看几个示例
1:单个表达式:

1

2

3

a = 1assert a < 0,

 '出错了,a大于0 啊'

 print('这里不会输出')

输出:

1

2

3

4

Traceback (most recent call last):

  File "main.py", line 3, in <module>   

  assert a < 0, '出错了,a大于0 啊'

  AssertionError: 出错了,a大于0 啊

2:多个表达式:

1

2

3

4

a = 1

b = -1

assert a > 0, b < 0

print('正常输出,表达式返回真了') # 输出:正常输出,表达式返回真了

3:尝试捕获 assert 异常:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

import traceback

try:

    assert a < 0

except AssertionError as aeeor:  # 明确抛出此异常

    # 抛出 AssertionError 不含任何信息,所以无法通过 aeeor.__str__()获取异常描述

    print('AssertionError', aeeor, aeeor.__str__())

    # 通过 traceback 打印详细异常信息

    print('traceback 打印异常')

    traceback.print_exc()

except:  # 不会命中其他异常

    print('assert except')

try:

    raise AssertionError('测试 raise AssertionError')

except AssertionError as aeeor:

    print('raise AssertionError 异常', aeeor.__str__())

输出:

1

2

3

4

5

6

7

AssertionError

traceback 打印异常

Traceback (most recent call last):

  File "main.py", line 7, in <module>

    assert a < 0

AssertionError

raise AssertionError 异常 测试 raise AssertionError

4:函数调用抛出异常:

1

2

3

4

5

6

7

8

# 除法运算

def foo(value, divide):

    assert divide != 0

    return value / divide

print('4除以2 =', foo(4, 2))  # 执行成功

print('4除以0 =', foo(4, 0))  # 抛出异常

输出:

1

2

3

4

5

6

7

4除以2 = 2.0

Traceback (most recent call last):

  File "main.py", line 8, in <module>

    print('4除以0 =', foo(4, 0))  # 抛出异常

  File "main.py", line 3, in foo

    assert divide != 0

AssertionError

通过上面几个示例,相信大家也深刻理解aseert的用处了

总结: 表达式返回false 时。直接抛出异常终止继续执行。

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值