美文网首页
SyntacticSugars

SyntacticSugars

作者: Rainysong | 来源:发表于2019-06-15 14:22 被阅读0次

    工作太苦,还好有语法糖。

    1.for...else....
    for i in range(3):
        print(i)
        if i % 2 == 0:
            break
    else:
        print("end")
    
    

    0

    循环遇到 break 退出后,整个语句就结束,else 语句块也不执行了。

    综上,我们可以得出这样一个结论,只有当循环里没有遇到 break 时,else 块才会执行。此刻,你应该明白了,真正和 else 搭配使用的是 for 循环中的 break,break ... else ... 才是两个互斥的条件

    当你用 for 循环迭代查找列表的中的某个元素时,如果找到了就立刻退出循环,如果迭代完了列表还没找到需要以另外一种形式(比如异常)的方式通知调用者时,用 for...else... 无疑是最好的选择。

    for i in mylist:
        if i == target:
            break
        process(i)
    else:
        raise ValueError("List argument missing terminal flag.")
    
    2.try...except...else/finally/raise
    • try...except
      try+正常时的运行操作,except+异常时的运行操作

    • try...except...else
      没有异常发生时,else中的语句被执行

    • try...finally
      无论异常是否发生,在程序结束前,finally中的语句都会被执行

    • raise
      引发一个异常,比如,当一个条件不满足用户意愿时引发一个异常

    a=3
    if a<4:
      raise Exception
    else:
      print(a)
    

    相关文章

      网友评论

          本文标题:SyntacticSugars

          本文链接:https://www.haomeiwen.com/subject/szdbfctx.html