Python 中的 for...else 语句

Manav Narula 2021年10月2日
Python 中的 for...else 语句

在编程中,我们使用循环来迭代不同类型的对象。由于其简单性,for 循环是使用最广泛的循环之一。

Python 有一个与 for 循环相关的非常有趣的特性。它允许我们使用 else 语句和 for 循环来组合条件执行和迭代。else 关键字通常用于 if-else 语句中,当 if 条件返回 false 时,我们使用它来执行一些命令。

然而,当我们在 Python 中使用 for 循环时,情况并非如此。考虑到循环在任何迭代中都没有遇到 break 语句,循环结束时,else 块中的语句将根据完成子句执行。break 语句用于中断循环。如果没有遇到 break 语句,则在循环之后也会执行 else 块语句。

如果遇到 continue 语句,则执行 else 语句。这是因为 continue 语句会强制进行下一次迭代。它不会打破循环。

请参考以下代码。

for i in range(3):
    if i > 5:
        break
else:
    print("Else Statements")

for i in range(3):
    if i > 1:
        print("Break")
        break
else:
    print("Else Statements")

for i in range(3):
    if i > 1:
        continue
else:
    print("Else Statements after Continue")

输出:

Else Statements
Break
Else Statements after Continue

现在,for...else 的使用不被许多有经验的程序员所接受,因为它可能会导致对 else 关键字的使用产生混淆。但是,它在 Python 中仍然有一些有用的应用程序。

例如,如果我们在列表中搜索一个元素并希望知道它是否存在于列表中,我们可以使用它。以下代码片段实现了这一点。

a = 15
lst = [10, 5, 6, 8, 9, 7, 5, 11]
for i in lst:
    if i == 15:
        print("Found")
        break
else:
    print("Not Found Loop Over")

输出:

Not Found Loop Over

else 关键字的使用不仅限于 for 循环,也可以与 Python 中的 while 循环一起使用。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - Python Statement