不管是什么編程語(yǔ)言,在開(kāi)發(fā)過(guò)程中總免不了代碼的調(diào)試。那么 python 語(yǔ)言怎么進(jìn)行調(diào)試呢?接下來(lái)就讓小編來(lái)告訴你。
僅使用 python 解釋器進(jìn)行代碼調(diào)試
如果 python 代碼有錯(cuò)誤,在解釋器運(yùn)行 python 代碼的時(shí)候會(huì)給出報(bào)錯(cuò),同時(shí)提示出錯(cuò)誤在第幾行。
這種方法有很多缺點(diǎn)。比如,如果代碼存在的錯(cuò)誤如果不影響運(yùn)行,就不會(huì)報(bào)錯(cuò)(比如算術(shù)表達(dá)式數(shù)值錯(cuò)誤,導(dǎo)致最終結(jié)果并非預(yù)期,但這種代碼錯(cuò)誤不影響運(yùn)行,不會(huì)被報(bào)錯(cuò));一次報(bào)錯(cuò)只報(bào)一個(gè)位置,如果這個(gè)代碼有100個(gè)錯(cuò)誤,那么它只會(huì)報(bào)第一個(gè)錯(cuò)誤,你需要重復(fù)運(yùn)行這個(gè)代碼99遍才能將所有錯(cuò)誤排除。
使用開(kāi)發(fā)工具進(jìn)行調(diào)試
因?yàn)閮H使用 python VSCodeVSCode解釋器進(jìn)行代碼調(diào)試會(huì)對(duì)編程人員的代碼調(diào)試帶來(lái)相當(dāng)大的困擾,這時(shí)候編程人員通常會(huì)選擇使用開(kāi)發(fā)工具進(jìn)行代碼調(diào)試。
關(guān)于開(kāi)發(fā)工具的調(diào)試方法分為兩個(gè)點(diǎn)進(jìn)行介紹,其中他們的共通之處在于:
他們都有一個(gè) variables 窗口,這個(gè)窗口可以查看變量的值。
他們可以查看調(diào)用堆棧??梢圆榭春瘮?shù)的調(diào)用情況。
他們都有 watches 窗口,可以查看變量值的變化。
他們都可以在代碼行前用左鍵下斷點(diǎn)。
注:pycharm 可以用 ?Ctrl+F8
? 鍵下斷點(diǎn);VSCode 可以用 ?F9
? 下斷點(diǎn)。
他們?cè)谡{(diào)試代碼的代碼執(zhí)行方式有共通之處(其實(shí)每種編程語(yǔ)言都用的差不多的代碼執(zhí)行方式)。
VSCode 的代碼執(zhí)行方式:
Pycharm 的代碼執(zhí)行方式:
?VSCode | ?Pycharm | ?功能 |
??Continue ?(繼續(xù)) | ? | ?執(zhí)行至下個(gè)斷點(diǎn) |
??Step over ?(單步跳過(guò)) | ??step over ??(步過(guò)) | ?從斷點(diǎn)處開(kāi)始,執(zhí)行單步語(yǔ)句(不進(jìn)入方法) |
??Step in ?(單步調(diào)試) | ??step into ??(步入) | ?可以進(jìn)入方法內(nèi)部,執(zhí)行?step over ? |
??step out ?(單步跳出) | ??step out ?(步出) | ?與?step in ?相反的操作,跳出方法內(nèi)部 |
注:pycharm 的 debug 窗口功能更加豐富全面,這里只列舉部分常用功能。
使用pycharm進(jìn)行代碼調(diào)試
在上一個(gè)點(diǎn)的基礎(chǔ)上參考小編的該篇文章:
pycharm怎么運(yùn)行python代碼?如何調(diào)試?
使用VSCode進(jìn)行代碼調(diào)試
在運(yùn)行和調(diào)試功能下點(diǎn)擊創(chuàng)建 ?launch.json
? 文件。
選擇 python 文件,點(diǎn)擊后即可創(chuàng)建一個(gè) ?launch.json
? 文件。創(chuàng)建完這個(gè)文件后就可以使用調(diào)試了。
需要調(diào)試代碼的時(shí)候,下好斷點(diǎn),按 ?F5
? 進(jìn)行調(diào)試,進(jìn)入調(diào)試狀態(tài)后左邊的調(diào)試窗口會(huì)出現(xiàn)變量窗口,堆棧窗口,監(jiān)視窗口和斷點(diǎn)管理窗口,這時(shí)候就可以進(jìn)行代碼的調(diào)試了。
小結(jié)
以上就是 python 怎么調(diào)試的全部?jī)?nèi)容,Debug 是每個(gè)程序員必備的基礎(chǔ)技能。它的重要性不言而喻,所以各位初學(xué)者們一定要好好掌握這個(gè)技能。如果有關(guān)于 Debug 的疑問(wèn),可以關(guān)注W3C技術(shù)頭條,小編會(huì)盡力為各位讀者大大解答。