assert 之后 不执行_通过案例学Python之assert

3770f4b1ccae44e2ed183497155a52a0.png

定义一个商品打折的函数:

## 商品打折函数,price为原价, discount为折扣,new_price为打折后的价格def dazhe(price, discount):    new_price = price * ( 1.0 - discount )                               assert  0 <= new_price <= price    return new_price

注意函数中有assert语句,当调用函数

print( dazhe(100, 0.5) )

输出结果为50,符合预期。如果是

print( dazhe(100, 2) )

则触发了AssertionError

Traceback (most recent call last):  File "C:\Users\springer\Desktop\if.py", line 7, in     print( dazhe(100, 2) )  File "C:\Users\springer\Desktop\if.py", line 4, in dazhe    assert  0 <= new_price <= priceAssertionError

参数discount会出现无效的情况,比如大于1。程序没有语法及逻辑错误,这是个不太容易发现的问题。设置assert之后,从AssertionError可以轻松发现问题所在位置,这大大加快了程序调试工作。

断言和异常的区别 

Python的断言是一种辅助调试功能,不是用来处理运行时错误的机制,使用assert的目的是让开发者更快地知道程序bug的原因,从而节省调试时间。断言不能滥用,更不能设置无效的断言。

学习编程是个长期的过程,网上那些快速成功的案例并不是常态,它给我们呈现的只是结果,而不是那之前漫长而乏味的过程。谁都会有感到枯燥的时候,一个问题久攻不下难免的,问题是你能否换其他事情平静之后再回过头来继续你之前枯燥的事情,如果还觉得枯燥那可能是你真的就不喜欢,如果可以继续那就继续!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值