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 中的int()函数怎么用
Oct 17 Python
python使用webdriver爬取微信公众号
Aug 31 Python
Opencv+Python 色彩通道拆分及合并的示例
Dec 08 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
Feb 28 Python
python实现输入三角形边长自动作图求面积案例
Apr 12 Python
PyTorch安装与基本使用详解
Aug 31 Python
Python Opencv图像处理基本操作代码详解
Aug 31 Python
Python读写csv文件流程及异常解决
Oct 20 Python
Pycharm中如何关掉python console
Oct 27 Python
Python数据模型与Python对象模型的相关总结
Jan 26 Python
Python如何识别银行卡卡号?
Jun 10 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中实现获取随机数组列表的自定义函数
2015/04/02 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
很好用的js日历算法详细代码
2013/03/07 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
javascript网页随机点名实现过程解析
2019/10/15 Javascript
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
Python自定义主从分布式架构实例分析
2016/09/19 Python
Python语言描述机器学习之Logistic回归算法
2017/12/21 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
使用python实现kNN分类算法
2019/10/16 Python
python从内存地址上加载python对象过程详解
2020/01/08 Python
用python解压分析jar包实例
2020/01/16 Python
python 控制台单行刷新,多行刷新实例
2020/02/19 Python
Python爬虫爬取微信朋友圈
2020/08/06 Python
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
欧洲第一中国智能手机和平板电脑网上商店:CECT-SHOP
2018/01/08 全球购物
临床医学专业毕业生的自我评价
2013/10/17 职场文书
2013的个人自我评价
2013/12/26 职场文书
纪念建党演讲稿范文
2014/01/13 职场文书
总经理任命书
2014/03/29 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
天坛导游词
2015/02/02 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
2015年优质护理服务工作总结
2015/04/08 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
2016年大学迎新晚会工作总结
2015/10/15 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
奇妙的 CSS shapes(CSS图形)
2021/04/05 HTML / CSS
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python