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