📜  在Python中将else条件语句与for循环一起使用

📅  最后修改于: 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")