Python學習之異常處理

2021-09-10 21:56:52 字數 1663 閱讀 2571

具體**詳見

異常即是乙個事件,該事件會在程式執行過程中發生,影響了程式的正常執行。

一般情況下,在python無法正常處理程式時就會發生乙個異常。

異常是python物件,表示乙個錯誤。

當python指令碼發生異常時我們需要捕獲處理它,否則程式會終止執行。

捕捉異常可以使用try/except語句。

try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常資訊並處理。

如果你不想在異常發生時結束你的程式,只需在try裡捕獲它。

語法:以下為簡單的try....except...else的語法:

try:

《語句》 #執行別的**

except 《名字》:

《語句》 #如果在try部份引發了'name'異常

except 《名字》,《資料》:

《語句》 #如果引發了'name'異常,獲得附加的資料

else:

《語句》 #如果沒有異常發生

ry的工作原理是,當開始乙個try語句後,python就在當前程式的上下文中作標記,這樣當異常出現時就可以回到這裡,try子句先執行,接下來會發生什麼依賴於執行時是否出現異常。

要求:1.詢問年齡;2.年齡小於18歲時,輸出"不可以喝酒";3.年齡》=18歲時,不輸出結果;4.當未輸入數字時,輸出「你輸入的不是數字」,並要求重新輸入年齡。

while true:

try:

age = int(input('你今年幾歲了?'))

break

except valueerror:

print('你輸入的不是數字!')

if age < 18:

print('不可以喝酒噢')

再以乙個例子具體呈現一下

這個除法計算器需要包含的報錯資訊有:輸入了非數值(即不屬於整數和浮點數)、被除數為零以及變數不存在。

print('\n歡迎使用除法計算器!\n')

while true:

try:

x = input('請你輸入被除數:')

y = input('請你輸入除數:')

z = float(x)/float(y)

print(x,'/',y,'=',z)

break # 預設每次只計算一次,所以在這裡寫了 break。

except zerodivisionerror: # 當除數為0時,跳出提示,重新輸入。

print('0是不能做除數的!')

except valueerror: # 當除數或被除數中有乙個無法轉換成浮點數時,跳出提示,重新輸入。

print('除數和被除數都應該是整值或浮點數!')

# 方式2:將兩個(或多個)異常放在一起,只要觸發其中乙個,就執行所包含的**。

# except(zerodivisionerror,valueerror):

# print('你的輸入有誤,請重新輸入!')

# 方式3:常規錯誤的基類,假設不想提供很精細的提示,可以用這個語句響應常規錯誤。

# except exception:

# print('你的輸入有誤,請重新輸入!')

python學習之異常處理

語法錯誤 因語法沒有通過python直譯器於法檢測 邏輯錯誤 有時不能避免 異常就是python程式執行時因發生錯誤而終止。在python的異常報錯資訊中包含 錯誤資訊追蹤資訊 錯誤型別 錯誤值 常見異常attributeerror 試圖訪問乙個物件沒有的樹形,比如foo.x,但是foo沒有屬性x ...

python之異常處理 Python之異常處理

異常物件 請大家執行如下 a 100 0 print a 就會發現直譯器顯示如下的錯誤提示 traceback most recent call last file x.py line 1,in a 100 0 zerodivisionerror division by zero 大家要學會看直譯器...

Python基礎學習之異常處理

編寫程式時,如果遇到異常,且沒有被處理,那麼程式自動結束而不會執行後面的 塊。在io輸入輸出,運算時或者多執行緒處理常會遇到異常,這時需要對其進行預處理,異常也是乙個物件。異常處理 基本框架為 try 正常執行,可能遇到錯誤的 塊 except exceptional exception2 exce...