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单例模式实例分析
Jan 14 Python
Python查询阿里巴巴关键字排名的方法
Jul 08 Python
Python中最大最小赋值小技巧(分享)
Dec 23 Python
python list转矩阵的实例讲解
Aug 04 Python
pandas DataFrame 行列索引及值的获取的方法
Jul 02 Python
Python中的self用法详解
Aug 06 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
Dec 04 Python
解决python 找不到module的问题
Feb 12 Python
Python如何在main中调用函数内的函数方式
Jun 01 Python
Python使用openpyxl复制整张sheet
Mar 24 Python
Python Django获取URL中的数据详解
Nov 01 Python
python开发人人对战的五子棋小游戏
May 02 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
ThinkPHP模型详解
2015/07/27 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
JS正则表达式大全(整理详细且实用)
2013/11/14 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
探索angularjs+requirejs全面实现按需加载的套路
2016/02/26 Javascript
location.hash保存页面状态的技巧
2016/04/28 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
2016/05/28 Javascript
利用JS实现数字增长
2016/07/28 Javascript
jquery实现输入框实时输入触发事件代码
2016/12/21 Javascript
使用JavaScript触发过渡效果的方法
2017/01/19 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
uni-app之APP和小程序微信授权方法
2019/05/09 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
vue基于better-scroll仿京东分类列表
2020/06/30 Javascript
Python3字符串学习教程
2015/08/20 Python
Python 文件处理注意事项总结
2017/04/10 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
python3 sorted 如何实现自定义排序标准
2020/03/12 Python
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
HTML5 新事件 小结
2009/07/16 HTML / CSS
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
菲律宾领先的在线时尚商店:Zalora菲律宾
2018/02/08 全球购物
西班牙Polo衫品牌:Polo Club
2020/08/09 全球购物
final, finally, finalize的区别
2012/03/01 面试题
服务承诺书范文
2014/05/19 职场文书
管理提升方案
2014/06/04 职场文书
文艺演出策划方案
2014/06/07 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书
导游词之藏龙百瀑景区
2019/12/30 职场文书
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js
我国拿下天问一号火星着陆区附近 22 个地理实体命名:平乐、西柏坡、古田、漠河等
2022/04/29 数码科技
微信小程序实现轮播图指示器
2022/06/25 Javascript