📅  最后修改于: 2020-01-17 14:04:40             🧑  作者: Mango
在大多数编程语言(C / C++,Java等)中,if条件语句限制了else语句的使用。但是Python还允许我们将else条件与for循环一起使用。
仅当循环未由break语句终止时,才在for / while之后执行else块。
其他代码块在下面的Python 3.x程序中执行:
for i in range(1, 4):
print(i)
else: # 将会执行,因为没有break
print("没有Break")
输出:
1
2
3
没有Break
在下面的Python 3.x程序中不执行其他块:
for i in range(1, 4):
print(i)
break
else: # 不执行,有break
print("没有 Break")
输出:
1
仅当循环中存在if条件(某种程度上取决于循环变量)时,此类else才有用。
在下面的示例中,else语句仅在数组的所有元素都不为偶数的情况下才执行。因此,对于数组[1、9、8],if在循环的第三次迭代中执行,因此,在for循环之后出现的else将被忽略。在数组[1、3、5]的情况下,对于任何迭代都不会执行if,因此会在循环之后执行else。
# Python 3.x代码,检查list是否有偶数
def contains_even_number(l):
for ele in l:
if ele % 2 == 0:
print ("list有偶数")
break
# break如果没有触发,同时上面的循环完成后,可以执行以下else.
else:
print ("list没有偶数")
# 测试代码
print ("对于list1:")
contains_even_number([1, 9, 8])
print (" \n对于list2:")
contains_even_number([1, 3, 5])
输出:
对于list1:
list有偶数
对于list2:
list没有偶数
作为练习,预测以下程序的输出。
count = 0
while (count < 1):
count = count+1
print(count)
break
else:
print("No Break")