python的for else语句

Posted 沧海一粟,何以久远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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里的语句肯定会被执行,有些场合也是一个有意思的用法

以上是关于python的for else语句的主要内容,如果未能解决你的问题,请参考以下文章

Python for...else... 语句

python的for else语句

SQL Select 语句的用法

流畅的python第十五章上下文管理器和else块学习记录

Python入门教程第55篇 循环进阶之for…else语句

Python for循环语句