Python中else怎么用?else的用法總結(jié)
關(guān)于else的用法總結(jié)
本文討論P(yáng)ython的for…else、while…else、try..except…else等語法
Python中的for、while是在循環(huán)體內(nèi)沒有break語句、沒有return語句,或者沒有異常出現(xiàn)時才執(zhí)行else語句,try..except…else是在try中無異常產(chǎn)生時執(zhí)行,注意不包括continue。
總的來說,是for、while、try語句中‘沒毛病’時才執(zhí)行,而在if..else語句中是if語句判斷為假(有毛?。┎艌?zhí)行else,這一點要區(qū)分開來
下面舉例說明下while..else作用,字符串有s1.find(s2)方法,作用是在字符串s1中查找s2,若找到就返回其索引值,不存在返回-1,但是列表卻沒find方法,以下用while…else語句實現(xiàn)list_find方法:
或者模擬list.index()的實現(xiàn):
最后關(guān)于try….except1..except2…else…finally的執(zhí)行順序:是try執(zhí)行完沒有任何問題(即各個except語句均沒有捕獲到異常)時,再去執(zhí)行else語句,最后執(zhí)行finally首尾工作,若執(zhí)行過程中只要有except捕獲到異常,就跳過else直接執(zhí)行finally;
你不知道的else用法
if-else
無論在哪個語言,if-else基本上都是通用的分支選擇結(jié)構(gòu)了。這里就簡單介紹一下。
if 3%2==1: ? ? print("if") else: ? ? print("else")
if-else 滿足if則進(jìn)入if語塊,否則進(jìn)入else語塊 if 和else 只有一個語塊代碼會被執(zhí)行。
for-else
for-else搭配使用,我也只是在python的學(xué)習(xí)過程中碰到過。通過測試用例來比較一下。
fruits=["apple","orange","pear"] for item in fruits: ? ? if item=="apple": ? ? ? ? print("apple") else: ? ? print("for-else")
↓↓↓
apple for-else
這里for循環(huán)正常執(zhí)行結(jié)束,然后執(zhí)行了else語塊的代碼。
fruits=["apple","orange","pear"] for item in fruits: ? ? if item=="apple": ? ? ? ? print("break") ? ? ? ? break else: ? ? print("for-else")
↓↓↓
break
當(dāng)在for循環(huán)中執(zhí)行break語句跳出循環(huán)時,else語塊沒有執(zhí)行。
即for-else搭配使用時,for循環(huán)沒有因為break語句跳出循環(huán),則會執(zhí)行else語句。
while-else
while-else與for-else類似,均為前面的循環(huán)正常結(jié)束時else語塊會被執(zhí)行。
i=5 while i>0: ? ? i=i-1 else: ? ? print("while-else")
↓↓↓
while-else
while語句正常執(zhí)行,當(dāng)while條件為false時結(jié)束while循環(huán),進(jìn)入else語塊。
i=5 while i>0: ? ? i=i-1 ? ? if i==3: ? ? ? ? print("break") ? ? ? ? break else: ? ? print("while-else")
↓↓↓
break
while語句因為break語句跳出循環(huán),else語塊沒有被執(zhí)行。
while-else搭配使用時,while循環(huán)沒有因為break語句跳出循環(huán),則會執(zhí)行else語句
備注:上述例子的break不一定非得是break,只要能跳出當(dāng)前循環(huán)的語句都會跳出else語塊。else如果還有其他用法,請在下方留言一起學(xué)習(xí)。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
bpython 功能強(qiáng)大的Python shell
bpython是一個不錯的Python解釋器的界面,本文帶著大家了解認(rèn)識一下bpython,感興趣的小伙伴們可以參考一下2016-02-02matplotlib共享坐標(biāo)軸的實現(xiàn)(X或Y坐標(biāo)軸)
在作圖的過程中,我們經(jīng)常會遇到子圖共用坐標(biāo)軸的情況,或是共用橫軸標(biāo)軸,也可能是縱坐標(biāo)軸。本文就介紹了matplotlib共享坐標(biāo)軸,感興趣的可以了解一下2021-05-05Python下載網(wǎng)絡(luò)文本數(shù)據(jù)到本地內(nèi)存的四種實現(xiàn)方法示例
這篇文章主要介紹了Python下載網(wǎng)絡(luò)文本數(shù)據(jù)到本地內(nèi)存的四種實現(xiàn)方法,涉及Python網(wǎng)絡(luò)傳輸、文本讀寫、內(nèi)存I/O、矩陣運算等相關(guān)操作技巧,代碼中包含了較為詳盡的注釋說明便于理解,需要的朋友可以參考下2018-02-02Python實現(xiàn)合并同一個文件夾下所有txt文件的方法示例
這篇文章主要介紹了Python實現(xiàn)合并同一個文件夾下所有txt文件的方法,涉及Python針對文件的遍歷、讀取、寫入等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04Python中內(nèi)建模塊collections如何使用
在本篇內(nèi)容里小編給大家整理的是關(guān)于Python中內(nèi)建模塊collections的用法,有需要的朋友們可以參考下。2020-05-05python調(diào)用動態(tài)鏈接庫的基本過程詳解
這篇文章主要介紹了python調(diào)用動態(tài)鏈接庫的基本過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06