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调用cmd命令行制作刷博器
Jan 13 Python
Python中的异常处理相关语句基础学习笔记
Jul 11 Python
python 如何快速找出两个电子表中数据的差异
May 26 Python
对python中Matplotlib的坐标轴的坐标区间的设定实例讲解
May 25 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
Jan 23 Python
python 求一个列表中所有元素的乘积实例
Jun 11 Python
Python爬虫:将headers请求头字符串转为字典的方法
Aug 21 Python
详解使用Python下载文件的几种方法
Oct 13 Python
Pycharm连接远程服务器过程图解
Apr 30 Python
python编程的核心知识点总结
Feb 08 Python
一篇文章搞懂python混乱的切换操作与优雅的推导式
Aug 23 Python
Python帮你解决手机qq微信内存占用太多问题
Feb 15 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&amp;mysql(二)
2006/10/09 PHP
PHP If Else(elsefi) 语句
2013/04/07 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
php生成xml时添加CDATA标签的方法
2014/10/17 PHP
PHP生成静态HTML页面最简单方法示例
2015/04/09 PHP
PHP实现正则表达式分组捕获操作示例
2018/02/03 PHP
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
node.js基于mongodb的搜索分页示例
2017/01/22 Javascript
详解使用vue实现tab 切换操作
2017/07/03 Javascript
zTree节点文字过多的处理方法
2017/11/24 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
原生javascript中this几种常见用法总结
2020/02/24 Javascript
Python中的Numeric包和Numarray包使用教程
2015/04/13 Python
python实现协同过滤推荐算法完整代码示例
2017/12/15 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
Python之使用adb shell命令启动应用的方法详解
2019/01/07 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
Tensorflow 模型转换 .pb convert to .lite实例
2020/02/12 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
python Tornado框架的使用示例
2020/10/19 Python
Django数据模型中on_delete使用详解
2020/11/30 Python
pyqt5实现井字棋的示例代码
2020/12/07 Python
html5各种页面切换效果和模态对话框用法总结
2014/12/15 HTML / CSS
美国批发零售网站:GearXS
2016/07/26 全球购物
加拿大奢华时装品牌:Mackage
2018/01/10 全球购物
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
银行行长竞聘演讲稿
2014/04/23 职场文书
写字楼租赁意向书
2014/07/30 职场文书
师德师风剖析材料
2014/09/30 职场文书
简易离婚协议书范本
2014/10/24 职场文书
大学生党员个人总结
2015/02/13 职场文书
实用求职信模板范文
2019/05/13 职场文书