作者:小K
來(lái)源:麥?zhǔn)寰幊?
各位看官,大家好。
我是K乙己,今天我要跟大家說(shuō)說(shuō)else的四種寫(xiě)法,希望大家喜歡。
第一種寫(xiě)法,與if搭配
name = input("請(qǐng)輸入名字: ") if name == "K乙己": print("我喜歡吃茴香豆!") else: print("我愛(ài)學(xué)python!")
這種寫(xiě)法估計(jì)學(xué)過(guò)2個(gè)小時(shí)的Python都知道這種用法,也是平時(shí)else最常見(jiàn)的用法。
這里的else沒(méi)啥好研究的,就是一個(gè)條件判斷語(yǔ)句,True是啥,F(xiàn)alse又是啥啥啥。
第二種寫(xiě)法,與for搭配
沒(méi)想到了吧,else還能與循環(huán)語(yǔ)句的for合用。上代碼:
for n in range(1,101): if n%15 == 0: print(n) else: print("我愛(ài)學(xué)python!")
執(zhí)行之后:
15 30 45 60 75 90 我愛(ài)學(xué)python!
else語(yǔ)句在for語(yǔ)句結(jié)束后執(zhí)行了。
嗨,反正都要執(zhí)行到的,沒(méi)必要再寫(xiě)個(gè)else語(yǔ)句。
剛開(kāi)始我也是這么認(rèn)為的,但是我試了以下代碼之后:
for n in range(1,101): if n%15 == 0: print('進(jìn)入break') break else: print("我愛(ài)學(xué)python!")
輸出結(jié)果:
進(jìn)入break
由此,得出結(jié)論:
?
for與else結(jié)合的語(yǔ)句,只有當(dāng)for循環(huán)完整的執(zhí)行完,才會(huì)執(zhí)行else里的語(yǔ)句。
如果中間有break跳出循環(huán),則else里的語(yǔ)句不執(zhí)行。
?
第三種寫(xiě)法,與while搭配
上面我們?cè)嚵讼?,else在for循環(huán)中的用法,那么else是否也能與while組合進(jìn)行使用呢?一起證實(shí)下:
n = 0 while n < 100:
n+=1 print(n) else: print("我愛(ài)學(xué)python!")
輸出結(jié)果:
1 2 3 ... 100 我愛(ài)學(xué)python!
上面的執(zhí)行輸出好像和for...else...用法一樣,循環(huán)執(zhí)行完畢會(huì)執(zhí)行else里的語(yǔ)句。
用代碼驗(yàn)證猜想:
n = 0 while n < 100:
n+=1 print(n) if n > 10: break else: print("我愛(ài)學(xué)python!")
輸出結(jié)果:
1 2 3 ... 11
猜想成果被驗(yàn)證,結(jié)論同for...else...用法。
第四種寫(xiě)法,try...except...else...
這種寫(xiě)法,在麥?zhǔn)?a href='/map/python/' style='color:#000;font-size:inherit;'>python每天三分鐘#090篇中出現(xiàn)過(guò)。
some_exceptions = [ValueError, TypeError, IndexError, None] for choice in some_exceptions: try:
print(f"拋出 {choice}") if choice: raise choice("出異常啦!") else:
print("順利完成,沒(méi)有異常") except ValueError:
print("有一個(gè)ValueError") except TypeError:
print("有一個(gè)TypeError") except Exception as e:
print(f"最后捕獲其他異常: {e.__class__.__name__}") else:
print("else里面的代碼只有在沒(méi)有異常的時(shí)候才執(zhí)行!") finally:
print("finally里的代碼不管有沒(méi)有異常都執(zhí)行!")
有興趣的小伙伴可以回顧下#090篇。這里我用我的代碼簡(jiǎn)單說(shuō)明下:
try:
a = 4 b = 4 c = a / b
except Exception as e: print(e) else: print("我愛(ài)學(xué)python!")
當(dāng)try里語(yǔ)句能正常執(zhí)行完(沒(méi)處理異常)的情況下,else里的語(yǔ)句會(huì)被執(zhí)行。
輸出結(jié)果:
"我愛(ài)學(xué)python!"
但是如果,try里語(yǔ)句執(zhí)行的過(guò)程報(bào)了異常,那么else里的語(yǔ)句就不會(huì)被執(zhí)行。
try:
a = 4 b = 0 c = a / b
except Exception as e: print(e) else: print("我愛(ài)學(xué)python!")
輸出結(jié)果:
division by zero