zoukankan      html  css  js  c++  java
  • python的for else语句

    Python循环中的else语句

    绝大部分编程语言中都有条件判断语句,比如 if … else ,在大部语言中,else 一般只在条件判断语句中出现,与 if 语句配套出现,不过在 Python 中,else 除了能与 if 这样的条件判断一起出现外,还能出现在 for、while 这样的循环语句中。

    我们来看一个例子:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    s = ["a111", "b222", "c333", "d444", "e555"]
    found = False
    for c in s:
        if c.startswith("c"):
            found = True
            print u"发现以字母c开头的项"
            break
     
    if not found:
        print u"没有发现以字母c开头的项"

    做一次循环,如果发现满足条件的字母则打印出提示信息,循环完了还没有发现则打印出另一条信息。我们需要设置一个额外的变量来记录是否找到了目标字符(程序中的 found 变量),在循环完成之后再做一个 if 判断。

    上面的写法当然是可以的,不过如果我们使用循环中的 else 语句的话,代码会更简洁清晰。比如:

    1
    2
    3
    4
    5
    6
    7
    s = ["a111", "b222", "c333", "d444", "e555"]
    for c in s:
        if c.startswith("c"):
            print u"发现以字母c开头的项"
            break
    else:
        print u"没有发现以字母c开头的项"

    在这儿,记录是否找到的额外的变量不需要了,也不再需要在循环完成后再进行 if 判断,但达到的效果和第一段代码是一样的。

    在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样

    如果使用continue替换break,效果则是:else里的语句肯定会被执行,有些场合也是一个有意思的用法

  • 相关阅读:
    android http多请求异步封装对你绝对有用
    浅论Android网络请求库——android-async-http
    Android Http异步请求,Callback
    STL慎重选择删除元素的
    iOS开展
    【Bootstrap】兼容IE8、谷歌和其他主流浏览器的观众IMAX风格的页面
    Codeforces #180 div2 C Parity Game
    vS2010 列表控件 加入右键菜单
    cocos2d-x 3.2 2048——第六部分(最后一章)
    E: 无法获取锁 /var/lib/apt/lists/lock
  • 原文地址:https://www.cnblogs.com/shengulong/p/8416999.html
Copyright © 2011-2022 走看看