code

2016年12月10日 星期六

Python: for-else



最近剛接觸Python, 碰到了之前其他程式語言沒有的for-else語法,紀錄一下。

for-else的else內容,主要是執行完for之後會執行的。
例如:

輸出是:
0
1
2
3
4
End for

可以看見先執行完全部的print(n)之後,等for結束後再執行else內容。

如果for內有break跳出的話,不會執行else內容。
例如:

輸出是:
0
1
2
3

在n==4的時候break,所以沒有印4與5,並且else內容也沒印了。

那麼,for-else會用在什麼時候呢?目前想到的是,處理for都沒有想要的結果的時候。例如,我要在尋找某個數字,如果找到就印出來,沒找到就顯示找不到。
以前我會用這種寫法:

多一個flag紀錄是否有找到,並且在後面要有一個if-else判斷。

現在不需要,直接融合在一起:


另外,Python是很注重tab的語言,很多時候少了tab會有error或者出現不一樣的結果。for-else也是。

輸出是:
沒找到
沒找到
沒找到
沒找到
我找到了4

else前面多了tab縮排,這時候會被判斷程if-else與法而不是for-else。

剛學python,只想到這樣,如果有更實用的方法可以提供喔!

沒有留言:

張貼留言