本文实例分析了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中for循环缩进_Python减少循环层次和缩进的技巧分析相关推荐

  1. python中while的用法_Python—while循环,内涵五种九九乘法表

    while语句 while循环是一个条件循环语句,如果while后的条件为真时,代码块一直循环,直到条件不再为真则结束循环. while循环的语法如下: while expression: suite ...

  2. python中e怎么计算_Python之循环结构——实战计算自然底数e,圆周率Π

    循环结构是编程中经常使用的语法,循环结构的巧妙使用对编程来说很重要.刚才群里还有同学说自己不会用循环,其实很简单,只是没有用过才觉得难.这里介绍Python循环语法的用法,并且使用两个小例子,来加强训 ...

  3. python中如何定义颜色_Python图像处理之颜色的定义与使用分析

    本文实例讲述了Python图像处理之颜色的定义与使用.分享给大家供大家参考,具体如下: python中的颜色相关的定义在matplotlib模块中,为方便使用,这里给大家展示一下在这个模块中都定义了哪 ...

  4. python中event的用法_Python编程之event对象的用法实例分析

    本文实例讲述了Python编程中event对象的用法.分享给大家供大家参考,具体如下: Python提供了Event对象用于线程间通信,它是由线程设置的信号标志,如果信号标志位为假,则线程等待直到信号 ...

  5. python中的多态用法_Python面向对象之多态原理与用法案例分析

    本文实例讲述了Python面向对象之多态原理与用法.分享给大家供大家参考,具体如下: 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 ...

  6. python中while的用法_Python学习笔记之While循环用法分析

    本文实例讲述了Python学习笔记之While循环用法.分享给大家供大家参考,具体如下: 前面一篇<Python学习笔记之For循环用法>详细介绍了Python for循环,这里再来讲述一 ...

  7. python中else的用法_Python循环语句中else的用法总结

    如何正确的理解python for循环中的else用法 程序中的else语句是便于处理某种行为,在循环的正常终止时执行:即以return或者break方式退出循环将会忽略else语句:存在contin ...

  8. python中for循环流程图_Python for 循环

    Python for 循环 Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串. 什么是Python中的for循环? Python中的for循环用于迭代序列(list,tuple ...

  9. python中for循环流程图_Python while 循环

    Python while 循环 循环在编程中用于重复特定的代码块.在本文中,您将学习如何在Python中创建while循环. 什么是Python中的while循环? 只要测试表达式(条件)为真,Pyt ...

最新文章

  1. Python+OpenCV 图像处理系列(3)—— 画线、矩形、画圆、画椭圆、画多边形
  2. AI一分钟 | “芯片门”影响仍在,英伟达旗下多款芯片也遭遇“幽灵”漏洞影响;贾跃亭邀媒体试乘法乐第FF91,你怎么看?
  3. 【 Notes 】COMPARISON OF BASIC METHODS AND POSITIONING SYSTEMS
  4. 利用shell脚本来监控linux系统的内存
  5. 阿里工程师如何叫外卖?99%的人猜不到
  6. 14.IDA-XREF(交叉引用)概述
  7. HDU2031 进制转换【进制】
  8. mysql 主从同步,双主同步,如果服务器意外挂机,不同步怎么办
  9. Java讲课笔记16:内部类
  10. 曝iPhone 12 Pro耗电异常,没开启任何应用电量也急剧下降
  11. Django 07. django框架模型之增删改查基本操作
  12. 【SAP业务模式】之ICS(三):前台操作
  13. 机器学习-西瓜书第一、二章
  14. java实现希尔排序(交换法、移位法) 图解+代码推导
  15. Python使用TCP通讯例子
  16. java big5到gb2312的编码转换
  17. 米家有品这么多好东西哪些值得我们关注
  18. 使用Jeb动态调试安卓的时候显示Could not attach to target
  19. linux第7章进程状态和控制
  20. 推荐 5 个精选公众号

热门文章

  1. HDU 1024:Max Sum Plus Plus(DP)
  2. snabbdom源码解析(七) 事件处理
  3. RAID磁盘阵列的原理与RAID0搭建
  4. 用GDB调试程序(五)
  5. 算法笔记_157:算法提高 c++_ch02_01(Java)
  6. 【技术分享总结】—设计模式
  7. serv-u的语言界面的切换(汉英切换)
  8. 网页分析利器:IEDevToolBar
  9. 2万长文,一文搞懂Kafka
  10. 每日百万订单,这样的技术方案更靠谱