通过案例学Python之assert
时间:2022-07-22
本文章向大家介绍通过案例学Python之assert,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
定义一个商品打折的函数:
## 商品打折函数,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:UsersspringerDesktopif.py", line 7, in <module>
print( dazhe(100, 2) )
File "C:UsersspringerDesktopif.py", line 4, in dazhe
assert 0 <= new_price <= price
AssertionError
参数discount会出现无效的情况,比如大于1。程序没有语法及逻辑错误,这是个不太容易发现的问题。设置assert之后,从AssertionError可以轻松发现问题所在位置,这大大加快了程序调试工作。
断言和异常的区别
Python的断言是一种辅助调试功能,不是用来处理运行时错误的机制,使用assert的目的是让开发者更快地知道程序bug的原因,从而节省调试时间。断言不能滥用,更不能设置无效的断言。
学习编程是个长期的过程,网上那些快速成功的案例并不是常态,它给我们呈现的只是结果,而不是那之前漫长而乏味的过程。谁都会有感到枯燥的时候,一个问题久攻不下难免的,问题是你能否换其他事情平静之后再回过头来继续你之前枯燥的事情,如果还觉得枯燥那可能是你真的就不喜欢,如果可以继续那就继续!
- SpringBoot集成MyBatis的分页插件PageHelper(回头草)
- SpringBoot整合Mybatis之进门篇
- Tomcat和Java Virtual Machine的性能调优总结
- 一次浴火重生的MySQL优化(EXPLAIN命令详解)
- 简单聊聊不可或缺的Nginx反向代理服务器--实现负载均衡【上篇】
- Java设计模式之适配器设计模式(项目升级案例)
- Java设计模式之模板方法设计模式(银行计息案例)
- 多线程之策略模式
- 文件上传的动作不能太俗,必须页面无刷新上传
- 这次真的忽略了一些ActiveMQ内心的娇艳
- 多线程编程:阻塞、并发队列的使用总结
- 多线程编程:多线程并发制单的开发记录【一】
- 如何使用线程锁来提高多线程并发效率
- 如何在分布式环境中同步solr索引库和缓存信息
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux应用程序使用写文件调试程序的方法
- python3学生名片管理v2.0版
- 移植新内核到Linux系统上的操作步骤
- PHP实现简单的协程任务调度demo示例
- YII2.0框架行为(Behavior)深入详解
- php数组函数array_push()、array_pop()及array_shift()简单用法示例
- PHP+MySQL+sphinx+scws实现全文检索功能详解
- php封装的page分页类完整实例代码
- Thinkphp自定义生成缩略图尺寸的方法
- Yii框架中使用PHPExcel的方法分析
- 详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
- Laravel框架自定义分页样式操作示例
- 使用composer 安装 laravel框架的方法图文详解
- laravel5.6 框架操作数据 Eloquent ORM用法示例
- Python版名片管理系统