Python减少循环层次和缩进的技巧分析

yipeiwu_com6年前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复制列表时[:]和[::]之间有什么区别

前言 new = old[:] Python老鸟都知道以上代码是什么意思。它复制列表old到new。它对于新手来说是种困惑而且应该避免使用这种方法。不幸的是[:]标记法被广泛使用,...

Python去除字符串两端空格的方法

目的   获得一个首尾不含多余空格的字符串 方法 可以使用字符串的以下方法处理: string.lstrip(s[, chars]) Return a copy of the stri...

python制作mysql数据迁移脚本

用python写了个数据迁移脚本,主要是利用从库将大的静态表导出表空间,载导入到目标实例中。 #!/usr/bin/env python3 #-*- coding:utf8 -*-...

python-itchat 获取微信群用户信息的实例

如下所示: import itchat, time from itchat.content import TEXT #name = ' ' roomslist = [] itcha...

Python定时任务sched模块用法示例

本文实例讲述了Python定时任务sched模块用法。分享给大家供大家参考,具体如下: 通过sched模块可以实现通过自定义时间,自定义函数,自定义优先级来执行函数。 范例一 imp...