python 異常,python示例異常處理與程序調試_Python錯誤處理及代碼調試方

 2023-10-21 阅读 32 评论 0

摘要:一次寫完代碼程序并能夠正常運行的概率很小很小,總會有各種各樣的錯誤bug需要處理。有的報錯簡單,看看報錯信息簡單修改一下就可以了。python 異常、但是有的報錯很復雜,特別是一些復雜長代碼,需要我們定位到錯誤的位置,需要判斷是什么變量

一次寫完代碼程序并能夠正常運行的概率很小很小,總會有各種各樣的錯誤bug需要處理。有的報錯簡單,看看報錯信息簡單修改一下就可以了。

python 異常、但是有的報錯很復雜,特別是一些復雜長代碼,需要我們定位到錯誤的位置,需要判斷是什么變量出現了問題,因此我們除了會寫代碼之外,還需要會解決常見的錯誤,那么具體有哪些處理錯誤的方法呢,具體簡單介紹以下幾塊內容:

一.異常處理

基本語法:

try:

#要運行別的代碼

except :

#如果在try部份引發了'xxxError'異常就會執行這一步語句

except ,:

#如果上一個except語句引發了'xxxError'異常,獲得附加的數據,并執行這一部分的語句

else:

#如果沒有出現異常要執行的代碼

finally:

#無論發生異常與否,最終都要執行的代碼

比如:

try:

print('執行try部分語句:')

i = input('輸入一個除數:')

result = 10 / i

print('result:', result)

except ZeroDivisionError:

print("除數不能為0")

else:

print("成功輸出結果")

finally:

print("無論發生異常與否,我都會在這里")

當然這里的except后面可以省略錯誤名稱,但是不建議。省略就意味著只要有錯誤就執行這一部分代碼,比如我在這里輸入一個字母a,明明錯誤應該是除數不能為字符串,這里仍然說除數不能為0是不是就不正確了,所以盡量寫出錯誤的名稱。

在這個語法中,try是核心成員,意思是不能沒有try,其他的內容都可以或多或少的省略掉,比如try-except,try-finally等。

二.debug調試

調試有很多種方法,這里列出主要的幾種方法:

1.用print語句

用print()語句把可能有問題的每一個過程都進行輸出,就像上面異常處理當中的一樣,這種方法簡單粗暴,但是在處理完所有的錯誤之后運行可能會有很多的無用信息,所以最終還要回來刪掉這些print語句,于是有了下面的方法。

2.斷言(assert)

在這里“斷言”是一種程序設計的專業術語,是一種放在程序中的一階邏輯(如一個結果為真或是假的邏輯判斷式),目的是為了標示與驗證程序開發者預期的結果。凡是用print()來輔助查看的地方都可以用斷言(assert)來進行替代。

但是在程序中如果導出都是assert也并沒有比print()好到哪里去,不過可以通過社吹Python解釋的-o參數來啟用或停用assert。

3.logging

把print()替換成logging是第三種方式,和assert比,logging不會拋出錯誤,而且還可以輸出到文件中形成一個日志文件。

logging的好處是,在運行代碼中不會拋出錯誤,而是把錯誤輸出到文件中,還可以指定記錄信息的級別,有debug、info、warning、error等,且只會有一個生效。

4.pdb

第四種方式是啟動Python的調試器pdb,讓程序以單步方式運行,可以隨時查看運行的狀態,就像使用jupyter notebook來一行一行運行代碼一樣,但是jupyter notebook的功能會更強大一些。

5.IDE

利用一些支持調試功能的IDE工具來進行調試,比如VS code,PyCharm等

6.jupyter notebook

最喜歡的方式就是使用jupyter notebook來進行調試代碼,可以自己設置一次運行多少行代碼,能夠準確定位到具體的錯誤位置,也是非常推薦的一個方式來進行代碼的調試。

最后,代碼調試是一個非常需要耐心的過程,也是體現學習程度的一個很重要的技能,希望大家能夠好好掌握~

END.

本文整理自愛數據學院中的問答

更多精彩問答,進入下方社區網站查看

http://www.lovedata.cn/invitation

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/156597.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息