python中的for..else和while...else理解

任何編程語言都提供了 if...else... 語句,表示如果(if)滿足條件就做某件事,否則(else)就做另外一件事:

if a==b: 
    print("true") 
else:
    print("false")

然而,在 Python 中 else 不僅可以和 if 搭配使用,還有另一種特有的句法是 for…else …,除此之外,它還可以和 while、try…except 組合使用,例如:

for i in range(5): 
    print(i) 
else: 
    print("打印else")

 

 

但是,你會發現for..else...與if...else..表現的不一樣,按照以往的經驗來說,執行了for語句塊中的代碼就不執行else裏面的,反之亦然.

然而,我們看到的卻恰恰相反,for 循環結束之後接着又執行了 else 語句塊,這就有點意思了,if … else … 翻譯成白話就是 如果…否則…,而 for…else… 翻譯成白話成了 直到… 然後 …,爲什麼不把它寫成 for…then… 的句式呢?這不更好理解嗎?

另外,即使 for 循環遍歷的是一個空列表也會執行 else 語句塊。

for i in []: 
    print(i) 
else: 
    print('end')

如果我們用break提前終止for循環,

for i in range(3): 
    print(i) 
    if i %2==0: 
        break 
else: 
    print('end')

循環遇到 break 退出後,整個語句就結束,else 語句塊也不執行了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章