Python减少循环层次和缩进的技巧分析


Posted in Python onMarch 15, 2016

本文实例分析了Python减少循环层次和缩进的技巧。分享给大家供大家参考,具体如下:

我们知道Python中冒号和缩进代表大括号,这样写已经可以节省很多代码行数,但是可以更优化,尽可能减少循环的层次和缩进,让代码看起来更简洁,逻辑更清楚。不仅Python语言如此,其他语言也一样。

Python减少循环层次和缩进的技巧分析

如图,是两段Python代码,前后两段要实现的功能是一样的,但是第二段明显可读性更好,逻辑更佳清晰。在很多循环嵌套的时候,其实可以用“逆向思维”,用continue跳出不符合条件的循环,而不是成立的时候继续执行,这样只会不断加深循环的层次。

下面是图示中的Python代码:

"""优化前"""
for item in items:
 if is_for_sale(item):
 cost = compute_cost(item)
 if cost <= wallet.money:
  buy(item)
"""优化后"""
for item in items:
 if not is_for_sale(item):
 continue
 cost = compute_cost(item)
 if cost > wallet.money:
 continue
 buy(item)

这样做减少了循环嵌套的层次,使可读性和逻辑性更直观,也没有那么多缩进。

转自:小谈博客 http://www.tantengvip.com/2015/05/python-for-level/

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python操作MongoDB基础知识
Nov 01 Python
Python构建网页爬虫原理分析
Dec 19 Python
python DataFrame 修改列的顺序实例
Apr 10 Python
python按行读取文件,去掉每行的换行符\n的实例
Apr 19 Python
python快排算法详解
Mar 04 Python
Python任意字符串转16, 32, 64进制的方法
Jun 12 Python
用pyqt5 给按钮设置图标和css样式的方法
Jun 24 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 Python
springboot配置文件抽离 git管理统 配置中心详解
Sep 02 Python
Python制作词云图代码实例
Sep 09 Python
K最近邻算法(KNN)---sklearn+python实现方式
Feb 24 Python
keras实现多GPU或指定GPU的使用介绍
Jun 17 Python
Python作用域用法实例详解
Mar 15 #Python
Python的净值数据接口调用示例分享
Mar 15 #Python
Python简单连接MongoDB数据库的方法
Mar 15 #Python
Python函数中的函数(闭包)用法实例
Mar 15 #Python
实例讲解Python中函数的调用与定义
Mar 14 #Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
Mar 14 #Python
简单讲解Python中的字符串与字符串的输入输出
Mar 13 #Python
You might like
PHP实现分页的一个示例
2006/10/09 PHP
php中静态类与静态变量用法的区别分析
2015/01/15 PHP
PHP下载生成的csv文件及问题总结
2015/08/06 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
jquery插件开发方法(初学者)
2012/02/03 Javascript
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
深入解析JavaScript中的立即执行函数
2016/05/21 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
关于Vue.js一些问题和思考学习笔记(1)
2016/12/02 Javascript
简单实现js轮播图效果
2017/07/14 Javascript
示例vue 的keep-alive缓存功能的实现
2018/12/13 Javascript
利用JavaScript将Excel转换为JSON示例代码
2019/06/14 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
ES6 Generator函数的应用实例分析
2019/06/26 Javascript
layui上传图片到服务器的非项目目录下的方法
2019/09/26 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
基于Python的接口测试框架实例
2016/11/04 Python
Python 多线程实例详解
2017/03/25 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
python实现局域网内实时通信代码
2019/12/22 Python
python爬取本站电子书信息并入库的实现代码
2020/01/20 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
人力资源管理毕业生自荐信
2014/06/26 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书
葬礼主持词
2015/07/02 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
初中信息技术教学反思
2016/02/16 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python
SpringBoot接入钉钉自定义机器人预警通知
2022/07/15 Java/Android