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)

这样做减少了循环嵌套的层次,使可读性和逻辑性更直观,也没有那么多缩进。

时间: 2024-10-13 20:27:41

PYTHON减少循环层次和缩进例子的相关文章

python中循环语句while用法实例

  本文实例讲述了python中循环语句while用法.分享给大家供大家参考.具体分析如下: 对于python的while语句,注意其缩进即可. python和其他语言一样也有break和continue,分别用来表示跳出循环和继续循环. ? 1 2 3 4 5 6 7 8 #!/usr/bin/python # Simple while loop a = 0 while a < 15: print a, # 在print a后面加,不换行 if a == 10: print "made

详解Python中循环语句的嵌套使用

  这篇文章主要介绍了举例详解Python中循环语句的嵌套使用,是Python入门中的基础知识,需要的朋友可以参考下 Python编程语言允许在一个循环内嵌套另一个循环.下面将介绍几个例子来说明这一概念. 语法 在Python中嵌套循环语句的语法如下: ? 1 2 3 4 for iterating_var in sequence: for iterating_var in sequence: statements(s) statements(s) Python编程语言允许在一个循环内嵌套另一个

jsp执行sql查询并取出结果 怎么实现循环遍历?求例子 初学

问题描述 jsp执行sql查询并取出结果 怎么实现循环遍历?求例子 初学 如题 sql表中有很多很多数据,想要查询并用表格的形式来显示出结果 已经连接上了数据库,可以执行查询语句,就是不知道该用什么方式把整个语句查询语句结果传递到显示结果的页面并且以表格的形式展现出来 String all="select sum(iNumb) as iNumbHj,sum (rMoney) as rMoneyHj from [Data_ShopDailyBill_View] group by sShopCode

sublime text写python代码时,tab缩进只有两个空格,怎么改成4个?

问题描述 sublime text写python代码时,tab缩进只有两个空格,怎么改成4个? 使用前在网上找了sublime text配置python的方法. 设置了preference.sublime-settings-users里面的tab_size:4见下图使用效果如下,不管是打tab还是sublime默认的自动缩进都是两个空格 解决方案 Sublime text 设置Tab为4个空格sublime text2 配置tab为4个空格Sublime Text2 配置tab为4个空格 解决方

Python增量循环删除MySQL表数据的方法_python

需求场景: 有一业务数据库,使用MySQL 5.5版本,每天会写入大量数据,需要不定期将多表中"指定时期前"的数据进行删除,在SQL SERVER中很容易实现,写几个WHILE循环就搞定,虽然MySQL中也存在类似功能,怎奈自己不精通,于是采用Python来实现 话不多少,上脚本: # coding: utf-8 import MySQLdb import time # delete config DELETE_DATETIME = '2016-08-31 23:59:59' DELE

Python增量循环删除MySQL表数据的例子

需求场景: 有一业务数据库,使用MySQL 5.5版本,每天会写入大量数据,需要不定期将多表中"指定时期前"的数据进行删除,在SQL SERVER中很容易实现,写几个WHILE循环就搞定,虽然MySQL中也存在类似功能,怎奈自己不精通,于是采用Python来实现 话不多少,上脚本: # coding: utf-8 import MySQLdb import time # delete config DELETE_DATETIME = '2016-08-31 23:59:59' DELE

Python for 循环

简述 在 Python 中,for 循环用于迭代序列(例如:列表.元组)或其他可迭代对象,迭代序列称为遍历. 简述 for 循环 通过索引遍历 for else 版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820 for 循环 语法格式: for <val> in <序列>: <循环体> val 是一个变量,在每次迭代中,用于接收将序列中元素的值. 循环会一直继续,直到到达序列的最后一项.循环体与其余的代码使用缩

Python中循环语句中的else用法

问题描述 本文讨论Python的for-else和while-else语法,这是Python中最不常用.最为误解的语法特性之一.Python中的for.while循环都有一个可选的else分支(类似if语句和try语句那样),在循环迭代正常完成之后执行.换句话说,如果我们不是以除正常方式以外的其他任意方式退出循环,那么else分支将被执行.也就是在循环体内没有break语句.没有return语句,或者没有异常出现.考虑一个简单的(无用的)例子:>>> for i in range(5):

python 函数的学习笔记使用例子

定义一个函数 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以def关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数. 函数的第一行语句可以选择性地使用文档字符串-用于存放函数说明. 函数内容以冒号起始,并且缩进. Return[expression]结束函数,选择性地返回一个值给调用方.不带表达式的return相当于返回 None. ---------------------------------------