Python:面對不按套路出牌的用戶,要用try、except、else組合拳


Python:面對不按套路出牌的用戶,要用try、except、else組合拳

本篇概要:業餘碼農學Python-18,本篇重點總結保留字try、except、else、finally的使用,通過4個保留字的組合使用,進行程序異常的捕捉與處理。

一、不按套路出牌的用戶

前面我嘗試編寫了一些Pyhon實例,今天突然心血來潮,翻出之前的實例,來了一次突(zuo)破( si)的嘗試——程序運行後,不按照要求輸入,如:

  • “請輸入帶有符號的溫度【攝氏度用C,華氏溫度用F】:”我輸入了80A;
  • “請輸入金額【以”RMB”或”USD”結尾】:”我輸入2000元;
  • “請輸入數字:”我輸入漢字;“請輸入整數”我輸入字母……

結果,悲劇了!

Python:面對不按套路出牌的用戶,要用try、except、else組合拳


Python:面對不按套路出牌的用戶,要用try、except、else組合拳

所有之前我寫的代碼都哭了:“你是個壞人,我要罷工、不跟你玩了。”

面對不按套路出牌的用戶,咋辦?

Python提供了一套組合拳,那就是保留字try、except、else、finally組合。

二、運用Python保留字try、except、else、finally,捕捉程序異常

  • 1、異常捕捉與處理的基本套路(try + except組合)

#異常捕捉與處理的基本套路

try:

except : #異常類型可以缺省,即任意一種異常出現均執行語句塊2

我們舉個實例:

#計算輸入數字的2倍值

n = eval(input("請輸入一個數字:"))

m=n*2

print(m)

當我們輸入數字時,程序是可以正常運行,並輸出用戶所輸入數字的2倍的值.

Python:面對不按套路出牌的用戶,要用try、except、else組合拳

但當我們輸入的不是數字時,比如我們輸入字母a,程序則會報錯。

Python:面對不按套路出牌的用戶,要用try、except、else組合拳

下面我們加入try + except 組合,捕捉輸入數據的異常並給用戶一個提示。


#異常捕捉與處理的基本套路

try:

n = eval(input("請輸入一個數字:"))

m=n*2

print(m)

except:

print("你輸入的不是一個數字")

再次輸入一個非數字的值a,則程序輸出提示“你輸入的不是一個數字”。

Python:面對不按套路出牌的用戶,要用try、except、else組合拳
  • 2、異常捕捉與處理的組合拳(try、except、else及finally組合)

用法如下

#異常捕捉處理組合拳

try:

except:

#出現異常執行語句塊2

else:

#只有在不發生異常的時候才執行語句塊3

finally:

#無論是否出現異常,語句塊4都會執行

程序則會按照以下規則執行:

Python:面對不按套路出牌的用戶,要用try、except、else組合拳

繼續優化前面的實例

#異常捕捉與處理組合拳

try:

n = eval(input("請輸入一個數字:"))

m=n*2

except:

print("你輸入的不是一個數字")

else:

print("{}的2倍為{}".format(n,m))

finally:

print("異常捕捉處理組合拳結束")

運行結果完美達到預期。

輸入數字20,程序運行結果顯示:

Python:面對不按套路出牌的用戶,要用try、except、else組合拳

輸入非數字a,程序運行結果顯示:

Python:面對不按套路出牌的用戶,要用try、except、else組合拳

因為初學,以上僅是異常捕捉與處理的基本使用及實例。更加深入的研究及使用,還要待後面的努力學習。

【end】


分享到:


相關文章: