Python 简明教程
Python for-else Loops
Python - For Else Loop
Python 支持将可选的 else block 与 for loop 关联。如果将 else block 与 for loop 一起使用,它仅在 for 循环正常终止时执行。
在不遇到 break statement 的情况下完成所有迭代时,for 循环正常终止,这让我们可以在满足某个条件时退出循环。
Syntax of For Else Loop
以下是具有可选 else 块的 for 循环的语法:
for variable_name in iterable:
#stmts in the loop
.
.
.
else:
#stmts in else clause
.
.
Example of For Else Loop
以下示例说明了在 Python 中将 else 语句与 for 语句相结合。在计数少于 5 时,将打印迭代计数。当它变为 5 时,将在将控制传递到主程序中的下一条语句之前,执行 else 块中的 print 语句。
for count in range(6):
print ("Iteration no. {}".format(count))
else:
print ("for loop over. Now in else block")
print ("End of for loop")
执行后,此代码将会产生以下 output −
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
For-Else Construct without break statement
如本教程前文所述,else 块仅在循环正常终止时执行,即在未使用 break 语句时执行。
Example
在以下程序中,我们使用了不带 break 语句的 for-else 循环。
for i in ['T','P']:
print(i)
else:
# Loop else statement
# there is no break statement in for loop, hence else part gets executed directly
print("ForLoop-else statement successfully executed")
执行后,上述程序将生成以下输出 −
T
P
ForLoop-else statement successfully executed
For-Else Construct with break statement In case of forceful termination (by using break statement) of the loop, else statement is overlooked by the interpreter and hence its execution is skipped.
For-Else with break statement and if conditions
如果我们将 for-else 结构与 break 语句和 if 条件一起使用,则 for 循环会迭代遍历迭代器,而且在此循环中,你可以使用 if 块来检查特定条件。如果循环完成时未遇到 break 语句,则将执行 else 块中的代码。
Example
以下程序展示了在使用 break 语句和 conditional statements 时,else 条件如何起作用。
# creating a function to check whether the list item is a positive
# or a negative number
def positive_or_negative():
# traversing in a list
for i in [5,6,7]:
# checking whether the list element is greater than 0
if i>=0:
# printing positive number if it is greater than or equal to 0
print ("Positive number")
else:
# Else printing Negative number and breaking the loop
print ("Negative number")
break
# Else statement of the for loop
else:
# Statement inside the else block
print ("Loop-else Executed")
# Calling the above-created function
positive_or_negative()
执行后,上述程序将生成以下输出 −
Positive number
Positive number
Positive number
Loop-else Executed