在python中使用带有for循环的else条件语句
在大多数编程语言(C/C++、Java 等)中,else 语句的使用受到 if 条件语句的限制。但是 Python 也允许我们在 for 循环中使用 else 条件。
仅当循环未被 break 语句终止时,才执行 for/while 之后的 else 块。
Else 块在下面的 Python 3.x 程序中执行:
for i in range(1, 4): print(i) else: # 执行,因为没有break print("No Break")
输出 :
1 2 3 No Break
Else 块不会在 Python 3.x 或更低版本中执行:
for i in range(1, 4): print(i) break else: # 没有执行,因为有break print("No Break")
输出 :
1
仅当循环内存在 if 条件以某种方式依赖于循环变量时,这种类型的 else 才有用。
在下面的例子中,只有当数组中没有元素是偶数时才会执行else语句,即没有执行任何迭代的if语句。因此,对于数组 [1, 9, 8],if 在循环的第三次迭代中执行,因此在 for 循环之后出现的 else 将被忽略。在数组 [1, 3, 5] 的情况下,任何迭代都不会执行 if ,因此执行循环之后的 else 。
# Python 3.x 程序检查数组是否由偶数组成 def contains_even_number(l): for ele in l: if ele % 2 == 0: print ("list contains an even number") break # 仅当从不达到 break 并且在所有迭代后终止循环时才会执行此 else 。 else: print ("list does not contain an even number") # 驱动程序代码 print ("For List 1:") contains_even_number([1, 9, 8]) print (" \nFor List 2:") contains_even_number([1, 3, 5])
输出:
For List 1: list contains an even number For List 2: list does not contain an even number
作为练习,预测以下程序的输出。
count = 0 while (count < 1): count = count+1 print(count) break else: print("No Break")