zoukankan      html  css  js  c++  java
  • Python 中的循环与 else

    1. 含义

    Python 中的循环与 else 有以下两种形式

    • for … else
    • while … else

    Python中的 for、while 循环都有一个可选(optional)的 else 分支(类似 if语句和 try 语句那样),在循环迭代正常完成之后执行。

    所谓循环迭代正常完成,一般是指(所需要迭代处理的对象遍历完毕,且中间没有异常发生):

    • 没有执行 break
    • 没有执行 return
    • 循环的中间没有异常发生

    注:纵然有 continue 语句,循环也是正常完成的;

    In [1]: for i in range(5):
       ...:     if i & 1 == 0:
       ...:         continue
       ...:     print(i)
       ...: else:
       ...:     print('Iteratived over everything')
       ...:
    1
    3
    Iteratived over everything
    • 尽管循环所迭代的序列是空的,else分支依然会被执行,毕竟循环仍然是正常完成的。
    >>> for i in []:
    ...     print(i)
    ... else:
    ...     print('Still iterated over everything (i.e. nothing)')
    ...
    Still iterated over everything (i.e. nothing)

    2. 思考

    如此设计的意义何在呢?

    else 语句在循环中的一个常见使用案例是实现循环查找。假说你在查找一个满足特定条件的项目(item),同时需要进行附加处理,或者在未发现可接受的值时生成一个错误:

    for x in data:
        if meets_cond(x):
            break
        ...
    else:
        .... 

    没有 else 语句的话,你需要设置一个标志,然后在后面对其检测,以此确定是否存在满足条件的值。

    found = False
    for x in data:
        if meets_cond(x):
            found = True
    if not found:
        ...     

    Python中循环语句中的else用法

  • 相关阅读:
    sql行列互转
    用户角色权限设计思路
    树节点类型数据的Datatable转Json
    [C#]最简单的Base64加密解密
    WEB打印控件Lodop(V6.x)使用说明及样例
    js代码 设为首页 加入收藏
    Json字符转化成对象
    C++函数返回值为const
    7.双指针(two pointer)
    线程同步与锁
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9424207.html
Copyright © 2011-2022 走看看