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使用wmi模块获取windows下的系统信息 监控系统
Oct 27 Python
Python中Collections模块的Counter容器类使用教程
May 31 Python
Python的Django框架中消息通知的计数器实现教程
Jun 13 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
Dec 12 Python
python互斥锁、加锁、同步机制、异步通信知识总结
Feb 11 Python
Python 做曲线拟合和求积分的方法
Dec 29 Python
Python将列表中的元素转化为数字并排序的示例
Dec 25 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
Mar 06 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
Apr 26 Python
python中Mako库实例用法
Dec 31 Python
Django模型层实现多表关系创建和多表操作
Jul 21 Python
对象析构函数__del__在Python中何时使用
Mar 22 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.ini中文版(2)
2006/10/09 PHP
使用无限生命期Session的方法
2006/10/09 PHP
destoon各类调用汇总
2014/06/20 PHP
php修改上传图片尺寸的方法
2015/04/14 PHP
PHP中preg_match函数正则匹配的字符串长度问题
2015/05/27 PHP
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
为数据添加append,remove功能
2006/10/03 Javascript
XRegExp 0.2: Now With Named Capture
2007/11/30 Javascript
JS实现定时自动关闭DIV层提示框的方法
2015/05/11 Javascript
javascript常用功能汇总
2015/07/05 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
2015/10/14 Javascript
html5 canvas 详细使用教程
2017/01/20 Javascript
微信小程序-getUserInfo回调的实例详解
2017/10/27 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
详解Axios统一错误处理与后置
2018/09/26 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
vue实现与安卓、IOS交互的方法
2018/11/02 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
pytorch实现MNIST手写体识别
2020/02/14 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
2020/03/19 Python
Python将二维列表list的数据输出(TXT,Excel)
2020/04/23 Python
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
html5手机键盘弹出收起的处理
2020/01/20 HTML / CSS
玩具反斗城美国官网:Toys"R"Us
2016/09/17 全球购物
德国鞋子网上商店:Omoda.de
2017/03/31 全球购物
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
英语国培研修感言
2014/02/13 职场文书
师德师风建设方案
2014/05/08 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
党的群众路线教育实践活动个人对照检查材料范文
2014/09/25 职场文书
少年犯观后感
2015/06/11 职场文书
一文弄懂MySQL索引创建原则
2022/02/28 MySQL
Java 数据结构七大排序使用分析
2022/04/02 Java/Android