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变量不能以数字打头详解
Jul 06 Python
python下载文件记录黑名单的实现代码
Oct 24 Python
无法使用pip命令安装python第三方库的原因及解决方法
Jun 12 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
Oct 09 Python
selenium在执行phantomjs的API并获取执行结果的方法
Dec 17 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
Aug 08 Python
Python PyInstaller安装和使用教程详解
Jan 08 Python
基于SpringBoot构造器注入循环依赖及解决方式
Apr 26 Python
Python垃圾回收机制三种实现方法
Apr 27 Python
Python使用shutil模块实现文件拷贝
Jul 31 Python
python更新数据库中某个字段的数据(方法详解)
Nov 18 Python
python如何利用cv2.rectangle()绘制矩形框
Dec 24 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 csv操作类代码
2009/12/14 PHP
php json_encode值中大括号与花括号区别
2013/09/30 PHP
PHP实现的sqlite数据库连接类
2014/12/12 PHP
php生成动态验证码gif图片
2015/10/19 PHP
Laravel框架自定义公共函数的引入操作示例
2019/04/16 PHP
JavaScript触发器详解
2007/03/10 Javascript
js 实现的可折叠留言板(附源码下载)
2014/07/01 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
盘点javascript 正则表达式中 中括号的【坑】
2016/03/16 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
详解Angular 4.x 动态创建组件
2017/04/25 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
nodejs操作mongodb的增删改查功能实例
2017/11/09 NodeJs
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
python中的reduce内建函数使用方法指南
2014/08/31 Python
python xml解析实例详解
2016/11/14 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
2019/09/20 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
Python openpyxl模块实现excel读写操作
2020/06/30 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
关于canvas.toDataURL 在iOS运行失败的问题解决
2020/09/16 HTML / CSS
加拿大消费电子和手机购物网站:The Source
2017/01/28 全球购物
FC-Moto美国:欧洲最大的摩托车服装和头盔商店之一
2019/08/24 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
类如何去实现接口
2013/12/19 面试题
SQL Server里面什么样的视图才能创建索引
2015/04/17 面试题
Ajax主要包含了哪些技术
2014/06/12 面试题
法律专业应届生自荐信范文
2014/01/06 职场文书
怀念母亲教学反思
2014/04/28 职场文书
2015年护士节活动总结
2015/02/10 职场文书
小学四年级作文之写景
2019/08/23 职场文书
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL