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应用03 使用PyQT制作视频播放器实例
Dec 07 Python
python跳过第一行快速读取文件内容的实例
Jul 12 Python
python中的tcp示例详解
Dec 09 Python
Python3 导入上级目录中的模块实例
Feb 16 Python
对Python3使运行暂停的方法详解
Feb 18 Python
Python后台开发Django会话控制的实现
Apr 15 Python
Django 项目重命名的实现步骤解析
Aug 14 Python
centos7中安装python3.6.4的教程
Dec 11 Python
jupyter notebook 的工作空间设置操作
Apr 20 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
Apr 22 Python
vscode+PyQt5安装详解步骤
Aug 12 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
Sep 01 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
PL-880隐藏功能
2021/03/01 无线电
php抓取https的内容的代码
2010/04/06 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
Javascript和Ajax中文乱码吐血版解决方案
2009/12/21 Javascript
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
NodeJS制作爬虫全过程
2014/12/22 NodeJs
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
python设置随机种子实例讲解
2019/09/12 Python
sklearn的predict_proba使用说明
2020/06/28 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
pycharm 实现复制一行的快捷键
2021/01/15 Python
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
英国设计的甲板鞋和船鞋:Chatham
2018/12/06 全球购物
播音主持女孩的自我评价分享
2013/11/20 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
2014年检验员工作总结
2014/11/19 职场文书
公司2014年度工作总结
2014/12/10 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
单位政审意见范文
2015/06/04 职场文书
贫困生证明范文
2015/06/16 职场文书
MySQL 全文检索的使用示例
2021/06/07 MySQL
Nginx如何配置根据路径转发详解
2022/07/23 Servers