Python 支持一个可选的 else
块与 for
循环相关联。如果使用 else
块与 for
循环一起,则仅当 for
循环正常终止时才会执行 else
块。
for
循环在完成所有迭代而没有遇到 break
语句的情况下正常终止,这允许我们在满足特定条件时退出循环。
For Else 循环流程图
下面的流程图展示了 for-else
循环的使用:
For Else 循环的语法
以下是带有可选 else
块的 for
循环的语法:
for variable_name in iterable:
.
.
.
else:
.
.
For Else 循环示例
下面的例子展示了 Python 中 else
语句与 for
语句的组合使用。只要计数小于 5,就会打印迭代次数。当计数达到 5 时,在 else
块中的打印语句被执行,然后控制权传递给主程序中的下一个语句。
for count in range(6):
print("Iteration no. {}".format(count))
else:
print("for loop over. Now in else block")
print("End of for loop")
执行此代码将产生以下输出:
Iteration no. 0
Iteration no. 1
Iteration no. 2
Iteration no. 3
Iteration no. 4
Iteration no. 5
for loop over. Now in else block
End of for loop
不带 break 语句的 For-Else 构造
正如本教程前面提到的,只有当循环正常终止时 else
块才会执行,即没有使用 break
语句。
示例
下面的程序中,我们使用不带 break
语句的 for-else
循环。
for i in ['T', 'P']:
print(i)
else:
print("ForLoop-else statement successfully executed")
执行上述程序将生成以下输出:
T
P
ForLoop-else statement successfully executed
带 break 语句的 For-Else 构造
在使用 break
语句强制终止循环的情况下,解释器会忽略 else
语句,因此它的执行将被跳过。
示例
下面的程序展示了在 break
语句情况下 else
条件如何工作。
for i in ['T', 'P']:
print(i)
break
else:
print("Loop-else statement successfully executed")
执行上述程序将生成以下输出:
T
带有 break 语句和 if 条件的 For-Else
如果我们使用带有 break
语句和 if
条件的 for-else
构造,for
循环将遍历迭代器,并且在这个循环中,你可以使用 if
块来检查特定的条件。如果循环完成并且没有遇到 break
语句,则 else
块中的代码将被执行。
示例
下面的程序展示了在 break
语句和条件语句情况下 else
条件如何工作。
def positive_or_negative():
for i in [5, 6, 7]:
if i >= 0:
print("Positive number")
else:
print("Negative number")
break
else:
print("Loop-else Executed")
positive_or_negative()
执行上述程序将生成以下输出:
Positive number
Positive number
Positive number
Loop-else Executed