• 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里的语句肯定会被执行,有些场合也是一个有意思的用法

  • 相关阅读:
    Django学习手册
    Django学习手册
    django 学习手册
    Django学习手册
    python
    python
    osg学习笔记2, 命令行参数解析器ArgumentParser
    osg(OpenSceneGraph)学习笔记1:智能指针osg::ref_ptr<>
    Boost.Build 简明教程
    Boost1.6x+win7+VC2015编译
  • 原文地址:https://www.cnblogs.com/shengulong/p/8416999.html
Copyright © 2020-2023  润新知