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读取ini文件、操作mysql、发送邮件实例
Jan 01 Python
简化Python的Django框架代码的一些示例
Apr 20 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
Jun 27 Python
python使用minimax算法实现五子棋
Jul 29 Python
Python内置类型性能分析过程实例
Jan 29 Python
Python实现名片管理系统
Feb 14 Python
python代码如何注释
Jun 01 Python
什么是python的自省
Jun 21 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
Nov 25 Python
Python Pandas模块实现数据的统计分析的方法
Jun 24 Python
Python中的socket网络模块介绍
Jul 23 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
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
Mootools 1.2教程 事件处理
2009/09/15 Javascript
28个JS验证函数收集
2010/03/02 Javascript
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
2013/08/13 Javascript
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
jQuery插件datalist实现很好看的input下拉列表
2015/07/14 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
AngularJS基础 ng-href 指令用法
2016/08/01 Javascript
谈谈JavaScript中的几种借用方法
2016/08/09 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
2017/09/19 Javascript
javascript 中模板方法单例的实现方法
2017/10/17 Javascript
详解vue-cli 脚手架 安装
2019/04/16 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
浅析Vue中拆分视图层代码的5点建议
2019/08/15 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
js canvas实现星空连线背景特效
2019/11/01 Javascript
Python的for和break循环结构中使用else语句的技巧
2016/05/24 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
详解Python sys.argv使用方法
2019/05/10 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
用Python进行websocket接口测试
2020/10/16 Python
关于canvas绘制模糊问题的解决方法
2019/09/24 HTML / CSS
化工厂员工工作总结
2015/10/15 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
广告策划的实习心得体会总结!
2019/07/22 职场文书
2019年“红色之旅”心得体会1000字(3篇)
2019/09/27 职场文书
Python实现对齐打印 format函数的用法
2022/04/28 Python