Python異常處理及其「公升級」

2021-10-08 12:53:56 字數 3338 閱讀 9489

一、程式的異常處理

異常處理是現代程式語言不可或缺的能力,它已經成為衡量一門程式語言是否已經成熟和健壯的標準之一。

例如在二級程式設計題中有乙個『猜數字』遊戲,如下

import random

target = random.randint(1,

1000

)count =

0while

true

: guess =

eval

(input

('請輸入乙個猜測的整數(1至1000):'))

count = count+

1if guess > target:

print

('猜大了'

)elif guess < target:

print

("猜小了"

)else

:print

("猜對了"

)break

print

("本輪猜測的次數是:{}"

.format

(count)

)

該遊戲會產生乙個1-1000的隨機數,然後請使用者迴圈猜這個數字,對於每個答案只回答"猜大了"或"猜小了",直到猜準確為止,輸出使用者的猜測次數

下面附上執行結果

請輸入乙個猜測的整數(

1至1000

):500

猜大了請輸入乙個猜測的整數(

1至1000

):100

猜大了請輸入乙個猜測的整數(

1至1000

):1猜小了

請輸入乙個猜測的整數(

1至1000

):abc--

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

-nameerror traceback (most recent call last)

input-1

-8c063bff509d

>

in3 count =04

while

true:-

--->

5 guess =

eval

(input

('請輸入乙個猜測的整數(1至1000):'))

6 count = count+17

if guess > target:

innameerror: name 'abc'

isnot defined

可以看到我們無法保證使用者會輸入什麼資料,輸入有誤程式就會報錯,這時異常處理的作用就體現出來了

仔細觀察下面的**

import random

target = random.randint(1,

1000

)count =

0while

true

:try

: guess =

eval

(input

('請輸入乙個猜測的整數(1至1000):'))

except

:print

("輸入格式有誤,請重新輸入"

)continue

count = count+

1if guess > target:

print

('猜大了'

)elif guess < target:

print

("猜小了"

)else

:print

("猜對了"

)break

print

("本輪猜測的次數是:{}"

.format

(count)

)

可以看到在第五行和第七行分別加了try和except語句

執行結果如下:

請輸入乙個猜測的整數(

1至1000

):500

猜大了請輸入乙個猜測的整數(

1至1000

):100

猜大了請輸入乙個猜測的整數(

1至1000

):1猜小了

請輸入乙個猜測的整數(

1至1000

):abc

輸入格式有誤,請重新輸入

請輸入乙個猜測的整數(

1至1000

):

結果顯而易見,所以程式的異常處理是非常有必要的

二、異常的高階用法

其實程式的異常處理還有一些略微高階的用法,這些用法也十分常用。

例題如下:

try

: alp =

"abcdefghijklmnopqrstuvwxyz"

idx =

eval

(input

("請輸入乙個整數:"))

print

(alp[idx]

)except nameerror:

print

("輸入錯誤,請輸入乙個0-25的整數"

)except

:print

("其它錯誤"

)

執行結果如下:

請輸入乙個整數:no

輸入錯誤,請輸入乙個0

-25的整數

請輸入乙個整數:

100其它錯誤

除了try和except保留字外,異常語句還可以與else和finally保留字配合使用,語法格式如下:

try

:《語句塊1

>

except

《異常型別1

>

:《語句塊2

>

else

:《語句塊3

>

finally

:《語句塊4

>

當try中的語句塊1正常執行結束且沒有發生異常時,else中的語句塊3執行,可以看作是對try語句塊正常執行後的一種追加處理。finally語句塊則不同,無論try中的語句塊1是否發生異常,語句塊4都會執行,可以將程式執行語句塊1的一些收尾工作放在這裡。

小夥伴們趕快找個例子練練手吧

python異常處理 Python 異常處理

使用者輸入不完整 比如輸入為空 或者輸入非法 輸入不是數字 異常就是程式執行時發生錯誤的訊號,在python中,錯誤觸發的異常如下 在python中不同的異常可以用不同的型別 python中統一了類與型別,型別即類 去標識,不同的類物件標識不同的異常,乙個異常標識一種錯 觸發indexerror 觸...

python異常舉例 Python異常處理

1.1異常問題舉例 例一 i input 請輸入數字 請輸入數字 0 print i print 5 int i traceback most recent call last file line 1,in zerodivisionerror division by zero 上述 的報錯是除零的錯...

python異常處理

當你的程式中出現異常情況時就需要異常處理。比如當你開啟乙個不存在的檔案時。當你的程式中有一些無效的語句時,python會提示你有錯誤存在。下面是乙個拼寫錯誤的例子,print寫成了print。python是大小寫敏感的,因此python將引發乙個錯誤 print hello world file l...