Python - For Else 循环
Python 支持将可选的 else 块与 for 循环相关联。如果 else 块与 for 循环一起使用,则仅当 for 循环正常终止时,才会执行该块。
for 循环在完成所有迭代而没有遇到 break 语句时正常终止,这允许我们在满足特定条件时退出循环。
For Else 循环流程图
以程图说明了 for-else 循环的使用 -
For Else 循环的语法
以下是带有可选 else 块的 for 循环的语法 -
for variable_name in iterable:
#stmts in the loop
.
.
.
else:
#stmts in else clause
.
.
For Else 循环示例
以下示例说明了 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")
在执行时,此代码将生成以下输出 -
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
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:
# 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
P
ForLoop-else statement successfully executed
使用 break 语句的 For-Else 构造
如果循环强制终止(通过使用 break 语句),解释器会忽略 else 语句,因此会跳过它的执行。
例下面的程序显示了 else 条件在 break 语句的情况下是如何工作的。
for i in ['T','P']:
print(i)
break
else:
# Loop else statement
# terminated after 1st iteration due to break statement in for loop
print("Loop-else statement successfully executed")
在执行时,上述程序将生成以下输出 -
T
带有 break 语句和 if 条件的 For-Else
如果我们使用 for-else 构造和 break 语句和 if 条件,则 for 循环将迭代迭代器,在此循环中,您可以使用 if 块来检查特定条件。如果循环完成时未遇到 break 语句,则执行 else 块中的代码。
例下面的程序显示了 else 条件在 break 语句和 conditional 语句的情况下是如何工作的。
# 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
Positive number
Positive number
Loop-else Executed