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实现在字符串中查找子字符串的方法
Jul 11 Python
Python3实现发送QQ邮件功能(html)
Dec 15 Python
python实现归并排序算法
Nov 22 Python
Python3.5运算符操作实例详解
Apr 25 Python
ERLANG和PYTHON互通实现过程详解
Jul 05 Python
python实现windows倒计时锁屏功能
Jul 30 Python
Django如何使用第三方服务发送电子邮件
Aug 14 Python
树莓派极简安装OpenCv的方法步骤
Oct 10 Python
简单了解python中的f.b.u.r函数
Nov 02 Python
Python模块zipfile原理及使用方法详解
Aug 04 Python
Django一小时写出账号密码管理系统
Apr 29 Python
浅谈Python中对象是如何被调用的
Apr 06 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,ajax实现分页
2008/03/27 PHP
PHPMYADMIN 简明安装教程 推荐
2010/03/07 PHP
sae使用smarty模板的方法
2013/12/17 PHP
php 判断服务器操作系统的类型
2014/02/17 PHP
PHP实现利用MySQL保存session的方法
2014/08/23 PHP
php多线程实现方法及用法实例详解
2015/10/26 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
2017/03/14 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
Nodejs全栈框架StrongLoop推荐
2014/11/09 NodeJs
jquery预加载图片的方法
2015/05/27 Javascript
文字垂直滚动之javascript代码
2015/07/29 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
给easyui的datebox控件添加清空按钮的实现方法
2016/11/09 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
2016/11/22 Javascript
创建一般js对象的几种方式
2017/01/19 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
python实现批量修改图片格式和尺寸
2018/06/07 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
python使用opencv对图像mask处理的方法
2019/07/05 Python
python用win32gui遍历窗口并设置窗口位置的方法
2019/07/26 Python
pandas 空数据处理方法详解
2019/11/02 Python
使用python实现多维数据降维操作
2020/02/24 Python
西班牙国家航空官方网站:Iberia
2017/11/16 全球购物
基石观后感
2015/06/12 职场文书
2015最新婚礼主持词
2015/06/30 职场文书
创业计划书之牛肉汤快餐店
2019/10/08 职场文书