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中os和shutil模块实用方法集锦
May 13 Python
Python数组条件过滤filter函数使用示例
Jul 22 Python
python使用openpyxl库修改excel表格数据方法
May 03 Python
Python Grid使用和布局详解
Jun 30 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
Sep 27 Python
python制作mysql数据迁移脚本
Jan 01 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
python网络爬虫 CrawlSpider使用详解
Sep 27 Python
python装饰器相当于函数的调用方式
Dec 27 Python
python为QT程序添加图标的方法详解
Mar 09 Python
Python字符串split及rsplit方法原理详解
Jun 29 Python
如何使用 Python 读取文件和照片的创建日期
Sep 05 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
PHP MemCached高级缓存配置图文教程
2010/08/05 PHP
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
PHP defined()函数的使用图文详解
2019/07/20 PHP
php创建多级目录与级联删除文件的方法示例
2019/09/12 PHP
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
require.js的用法详解
2015/10/20 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
2016/08/06 Javascript
jquery心形点赞关注效果的简单实现
2016/11/14 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
2019/09/03 Javascript
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
.netcore+vue 实现压缩文件下载功能
2020/09/24 Javascript
Python set集合类型操作总结
2014/11/07 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
利用python计算时间差(返回天数)
2019/09/07 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
python 制作简单的音乐播放器
2020/11/25 Python
前端隐藏出边界内容的实现方法
2016/04/14 HTML / CSS
详解CSS3的perspective属性设置3D变换距离的方法
2016/05/23 HTML / CSS
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
个人思想理论学习的自我鉴定
2013/11/30 职场文书
小学毕业感言50字
2014/02/16 职场文书
实习单位鉴定评语
2014/04/26 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
出纳试用期自我评价
2015/03/10 职场文书
对学校的意见和建议
2015/06/04 职场文书
于丹讲座视频观后感
2015/06/15 职场文书
《浅水洼里的小鱼》教学反思
2016/02/16 职场文书
box-shadow单边阴影的实现
2023/05/21 HTML / CSS