小橙子新手出道學異常呀

2021-10-11 16:28:16 字數 2519 閱讀 2556

異常是用try-except**塊處理的,它讓python執行指定操作,同時告訴python發生異常應該怎麼辦 。使用了try-except**塊時,即便出現異常,程式也將繼續執行:顯示出你編寫的友好的錯誤資訊,而不是令使用者迷惑的traceback。

處理zerodivisionerror異常

print(5

/0)traceback (most recent call last)

: file "d:/pythonproject/檔案2.py"

, line 1,in

zerodivisionerror: division by zero

很明顯,0不能做除數,這裡的zerodivisionerror是乙個異常物件。python在遇到這種情況時,將停止執行,而我們可以根據這些資訊對程式修改。下面我們告訴python發生這種錯誤的時候怎麼辦,如果再次發生這樣的錯誤,那麼就有備無患了。

try

:print(5

/0)except zerodivisionerror:

print

("you can't divide by zero! "

)

執行結果如下:

you can't divide by  zero!
使用異常避免崩潰

下面來建立乙個只執行除法運算的簡單計算器:

print

("give me two numbers,and i'will divide them."

)print

("enter 『q』 to quit."

)while

true

: first_number =

input

("\nfirst number:"

)if first_number ==

'q':

break

second_number =

input

("second number:"

)if second_number ==

'q':

break

answer =

int(first_number)

/int

(second_number)

print

(answer)

這個程式沒有採取任何處理錯誤的措施,因此讓它執行除數為0的除法運算時,它將崩潰。

enter 『q』 to quit.

first number:

2second number:

0traceback (most recent call last)

: file "d:/pythonproject/橙子1.py"

, line 11,in

answer =

int(first_number)

/int

(second_number)

zerodivisionerror: division by zero

程式崩潰可能會洩露資訊,讓那些懷有惡意的使用者通過traceback獲悉你不希望他知道的資訊。而通過將可能的錯誤放在try-except**塊中,可以提高這個程式抵禦錯誤的能力。

`

print

("give me two numbers,and i'will divide them."

)print

("enter 『q』 to quit."

)while

true

: first_number =

input

("\nfirst number:"

)if first_number ==

'q':

break

second_number =

input

("second number:"

)try

: answer =

int(first_number)

/int

(second_number)

except zerodivisionerror:

print

("you can't divide by 0 !"

)else

:print

(answer)

可以看到

give me two numbers,

and i'will divide them.

enter 『q』 to quit.

first number:

2second number:

0you can't divide by 0 !

可以說,except**塊告訴python,如果它嘗試執行try**塊中的**時引發了異常,該怎麼辦。

小練習,新手建議練練手哦

在堆上分配乙個學生結構體,鍵盤輸入學生的編號 姓名 成績,提示是否繼續輸入,選擇y繼續輸入 選擇n 顯示輸入的所有學員資訊,用varglind檢查記憶體,注意記憶體洩露。include include include include typedef struct studentstu int cou...

開源新手必看7個小技巧

csdn編者按 萬事開頭難,成為開源大佬的第一步,是成為開源新手。先讀他人的 contributing.md,慢慢就會有了自己的貢獻規則。譯者 彎月 出品 csdn id csdnnews 以下為譯文 多年來,我一直在參與幾個 庫的維護工作,這些 庫的主要目的是幫助新手學習如何為開源做貢獻,並給他們...

Mac新手玩轉終端常用小知識!!

mac終端是乙個特殊的應用,可用於執行一些特殊的命令,你可以通過終端向mac傳送一些特殊的指令,但是剛接觸mac新手可能並不是很熟悉這方面。那麼今天就帶你們了解終端的常用知識。感興趣的小夥伴們和新手寶寶不要錯過哦!開啟終端的方法 通過launchpad 的其它資料夾 找到終端應用 檢視被占用的埠 l...