python的for else語句
阿新 • • 發佈:2018-02-05
table padding container 部分 sta cell 編程語言 fun pad
Python循環中的else語句
絕大部分編程語言中都有條件判斷語句,比如 if … else ,在大部語言中,else 一般只在條件判斷語句中出現,與 if 語句配套出現,不過在 Python 中,else 除了能與 if 這樣的條件判斷一起出現外,還能出現在 for、while 這樣的循環語句中。
我們來看一個例子:
1 2 3 4 5 6 7 8 9 10 |
s = [ "a111" , "b222" , "c333" , "d444" , "e555" ]
found = False
for c in s:
if c.startswith( "c" ):
found = True
print u "發現以字母c開頭的項"
break
if not found:
print u "沒有發現以字母c開頭的項"
|
做一次循環,如果發現滿足條件的字母則打印出提示信息,循環完了還沒有發現則打印出另一條信息。我們需要設置一個額外的變量來記錄是否找到了目標字符(程序中的 found 變量),在循環完成之後再做一個 if 判斷。
上面的寫法當然是可以的,不過如果我們使用循環中的 else 語句的話,代碼會更簡潔清晰。比如:
1 2 3 4 5 6 7 |
s = [ "a111" , "b222" , "c333" , "d444" , "e555" ]
for c in s:
if c.startswith( "c" ):
print u "發現以字母c開頭的項"
break
else :
print u "沒有發現以字母c開頭的項"
|
在這兒,記錄是否找到的額外的變量不需要了,也不再需要在循環完成後再進行 if 判斷,但達到的效果和第一段代碼是一樣的。
在 python 中,for … else 表示這樣的意思,for 中的語句和普通的沒有區別,else 中的語句會在循環正常執行完(即 for 不是通過 break 跳出而中斷的)的情況下執行,while … else 也是一樣
如果使用continue替換break,效果則是:else裏的語句肯定會被執行,有些場合也是一個有意思的用法
python的for else語句