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 过滤字符串的技巧,map与itertools.imap
Sep 06 Python
python去掉字符串中重复字符的方法
Feb 27 Python
python的Template使用指南
Sep 11 Python
Python中pygame的mouse鼠标事件用法实例
Nov 11 Python
让python在hadoop上跑起来
Jan 27 Python
Python使用爬虫猜密码
Feb 19 Python
mysql 之通过配置文件链接数据库
Aug 12 Python
Python实现统计给定列表中指定数字出现次数的方法
Apr 11 Python
Python中is和==的区别详解
Nov 15 Python
pandas使用apply多列生成一列数据的实例
Nov 28 Python
使用python获取(宜宾市地震信息)地震信息
Jun 20 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 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
S900/ ETON E1-XM 收音机
2021/03/02 无线电
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
配置php.ini实现PHP文件上传功能
2014/11/27 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
setTimeout和setInterval的浏览器兼容性分析
2007/02/27 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
Jquery api 速查表分享
2015/01/12 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
利用node.js如何搭建一个简易的即时响应服务器
2017/05/28 Javascript
JS+HTML5实现图片在线预览功能
2017/07/22 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
[02:57]2014DOTA2国际邀请赛-观众采访
2014/07/19 DOTA
python中使用enumerate函数遍历元素实例
2014/06/16 Python
Python修改MP3文件的方法
2015/06/15 Python
python虚拟环境virualenv的安装与使用
2016/12/18 Python
python爬取内容存入Excel实例
2019/02/20 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
python文件及目录操作代码汇总
2020/07/08 Python
美国首屈一指的高品质珠宝设计师和零售商:Allurez
2018/01/23 全球购物
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
党课学习思想汇报
2014/01/02 职场文书
机电一体化应届生求职信范文
2014/01/24 职场文书
运动会通讯稿150字
2014/02/15 职场文书
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
技术员岗位职责
2015/02/04 职场文书
试用期辞职信范文
2015/03/02 职场文书
银行自荐信范文
2015/03/25 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书
MySQL Router实现MySQL的读写分离的方法
2021/05/27 MySQL
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers