Python for-else 循环



Python - For Else 循环

Python 支持将一个可选的else 块for 循环关联。如果else 块for 循环一起使用,则只有当 for 循环正常终止时才会执行它。

当 for 循环在没有遇到break 语句的情况下完成所有迭代时,for 循环会正常终止,这允许我们在满足特定条件时退出循环。

For Else 循环流程图

下面的流程图说明了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

不带 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

带 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语句和条件语句中的工作方式。

# 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
广告