【python】else 用法彙總筆記
阿新 • • 發佈:2021-01-07
技術標籤:Python
記錄一個小知識…
閱讀別人程式碼,有點疑惑,精簡後如下:
defcode_example(arg=None):
foriinrange(5):
ifarg:
break
else:
print('elsebranch')
問題
迴圈語句後面直接跟了 else 語句,未報錯,程式正常執行。
一般都是判斷語句配合 else 使用,那麼這裡的 else 是什麼作用呢?
嘗試
foriinrange(2):
print(i)
else:
print("elsebranch")
>>>
0
1
elsebranch
test01:根據列印資訊發現,for 迴圈正常執行完成後執行了 else 分支;
foriinrange(2):
continue
else:
print("elsebranch")
>>>
elsebranch
test02:迴圈體內增加 continue 跳出,執行完成迴圈後,正常執行 else 分支;
foriinrange(2):
#print(i)
break
else:
print("elsebranch")
>>>
test03:如果 break 掉迴圈,打斷迴圈,沒有任何輸出,也就是不走 else 分支;
deftest():
foriinrange(2):
return
else:
print("elsebranch" )
>>>
test04:嘗試 return 語句,打斷迴圈,也是不走 else 分支。
結論
for … else …
- 僅當迴圈體全部執行完成,才執行 else 分支;
- 當迴圈過程未全部完成,則不執行 else 分支。
擴充套件
Python 支援 else 語句彙總:
- for … else …
- while … else …
- try … except … else …
- if … elif … else …
while 語句
與 for 迴圈相同步驟測試,結論一樣
try 語句:
1) 當 try 內無異常執行完成後,執行 else 分支;
2) 當 try 內出現異常,執行到 except,不再執行 else 分支。
deftest_01():
try:
print("try")
except:
print("except")
else:
print("else")
>>>
try
else
-----------------------
deftest02():
try:
5/0
except:
print("except")
else:
print("else")
>>>
except
彙總
- for、while 迴圈
當迴圈語句全部正常執行完成(包括 continue),會繼續執行 else 分支;當迴圈語句被打斷(break\return),不再執行 else 分支 - try 異常處理
當 try 語句無異常執行完成時,會繼續執行 else 分支;當丟擲異常後,不再執行 else 分支 - if 條件判斷
條件判斷,不符合 if 或者 elif,才執行 else 分支