Python中else怎么用?else的用法總結(jié)
關(guān)于else的用法總結(jié)
本文討論P(yáng)ython的for…else、while…else、try..except…else等語(yǔ)法
Python中的for、while是在循環(huán)體內(nèi)沒(méi)有break語(yǔ)句、沒(méi)有return語(yǔ)句,或者沒(méi)有異常出現(xiàn)時(shí)才執(zhí)行else語(yǔ)句,try..except…else是在try中無(wú)異常產(chǎn)生時(shí)執(zhí)行,注意不包括continue。
總的來(lái)說(shuō),是for、while、try語(yǔ)句中‘沒(méi)毛病’時(shí)才執(zhí)行,而在if..else語(yǔ)句中是if語(yǔ)句判斷為假(有毛病)才執(zhí)行else,這一點(diǎn)要區(qū)分開(kāi)來(lái)
下面舉例說(shuō)明下while..else作用,字符串有s1.find(s2)方法,作用是在字符串s1中查找s2,若找到就返回其索引值,不存在返回-1,但是列表卻沒(méi)find方法,以下用while…else語(yǔ)句實(shí)現(xiàn)list_find方法:

或者模擬list.index()的實(shí)現(xiàn):

最后關(guān)于try….except1..except2…else…finally的執(zhí)行順序:是try執(zhí)行完沒(méi)有任何問(wèn)題(即各個(gè)except語(yǔ)句均沒(méi)有捕獲到異常)時(shí),再去執(zhí)行else語(yǔ)句,最后執(zhí)行finally首尾工作,若執(zhí)行過(guò)程中只要有except捕獲到異常,就跳過(guò)else直接執(zhí)行finally;

你不知道的else用法
if-else
無(wú)論在哪個(gè)語(yǔ)言,if-else基本上都是通用的分支選擇結(jié)構(gòu)了。這里就簡(jiǎn)單介紹一下。
if 3%2==1:
? ? print("if")
else:
? ? print("else")if-else 滿足if則進(jìn)入if語(yǔ)塊,否則進(jìn)入else語(yǔ)塊 if 和else 只有一個(gè)語(yǔ)塊代碼會(huì)被執(zhí)行。
for-else
for-else搭配使用,我也只是在python的學(xué)習(xí)過(guò)程中碰到過(guò)。通過(guò)測(cè)試用例來(lái)比較一下。
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語(yǔ)塊的代碼。
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語(yǔ)句跳出循環(huán)時(shí),else語(yǔ)塊沒(méi)有執(zhí)行。
即for-else搭配使用時(shí),for循環(huán)沒(méi)有因?yàn)閎reak語(yǔ)句跳出循環(huán),則會(huì)執(zhí)行else語(yǔ)句。
while-else
while-else與for-else類似,均為前面的循環(huán)正常結(jié)束時(shí)else語(yǔ)塊會(huì)被執(zhí)行。
i=5
while i>0:
? ? i=i-1
else:
? ? print("while-else")↓↓↓
while-else
while語(yǔ)句正常執(zhí)行,當(dāng)while條件為false時(shí)結(jié)束while循環(huán),進(jìn)入else語(yǔ)塊。
i=5
while i>0:
? ? i=i-1
? ? if i==3:
? ? ? ? print("break")
? ? ? ? break
else:
? ? print("while-else")↓↓↓
break
while語(yǔ)句因?yàn)閎reak語(yǔ)句跳出循環(huán),else語(yǔ)塊沒(méi)有被執(zhí)行。
while-else搭配使用時(shí),while循環(huán)沒(méi)有因?yàn)閎reak語(yǔ)句跳出循環(huán),則會(huì)執(zhí)行else語(yǔ)句
備注:上述例子的break不一定非得是break,只要能跳出當(dāng)前循環(huán)的語(yǔ)句都會(huì)跳出else語(yǔ)塊。else如果還有其他用法,請(qǐng)?jiān)谙路搅粞砸黄饘W(xué)習(xí)。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于Pygame中Pygame模塊的大戰(zhàn)外星人實(shí)戰(zhàn)
本文主要介紹了基于Pygame中Pygame模塊的大戰(zhàn)外星人實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Python使用matplotlib簡(jiǎn)單繪圖示例
這篇文章主要介紹了Python使用matplotlib簡(jiǎn)單繪圖,結(jié)合實(shí)例形式分析了Python基于matplotlib繪制正弦與余弦曲線相關(guān)操作技巧,需要的朋友可以參考下2018-02-02
python統(tǒng)計(jì)文本文件內(nèi)單詞數(shù)量的方法
這篇文章主要介紹了python統(tǒng)計(jì)文本文件內(nèi)單詞數(shù)量的方法,涉及Python針對(duì)文本文件及字符串的相關(guān)操作技巧,需要的朋友可以參考下2015-05-05
Python的Tornado框架實(shí)現(xiàn)圖片上傳及圖片大小修改功能
Tornado是一個(gè)異步的Python Web開(kāi)發(fā)框架,同時(shí)也是一個(gè)優(yōu)秀的異步服務(wù)器開(kāi)發(fā)庫(kù),這里我們將來(lái)講解一下Python的Tornado框架實(shí)現(xiàn)圖片上傳及圖片大小修改功能方面的一些重點(diǎn):2016-06-06
python實(shí)現(xiàn)單張圖像拼接與批量圖片拼接
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)單張圖像拼接與批量圖片拼接,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03
python爬蟲(chóng)lxml庫(kù)解析xpath網(wǎng)頁(yè)過(guò)程示例
這篇文章主要為大家介紹了python爬蟲(chóng)lxml庫(kù)解析xpath網(wǎng)頁(yè)的過(guò)程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

