python3.7調(diào)試的實(shí)例方法
PyCharm IDE 窗口布局
PyCharm 調(diào)試代碼實(shí)例(這里我以自己的代碼為例)
__author__ = 'lxm' #!/usr/bin/python import thread import time # Define a function for the thread def print_time( threadName, delay): count = 0 while count < 5: count += 1 print "%s: %s" % ( threadName, time.ctime(time.time()) ) def check_sum(threadName,valueA,valueB): print "to calculate the sum of two number her" result=sum(valueA,valueB) print "the result is" ,result; def sum(valueA,valueB): if valueA >0 and valueB>0: return valueA+valueB def readFile(threadName, filename): file = open(filename) for line in file.xreadlines(): print line try: thread.start_new_thread( print_time, ("Thread-1", 2, ) ) thread.start_new_thread( check_sum, ("Thread-2", 4,5, ) ) thread.start_new_thread( readFile, ("Thread-3","test.txt",)) except: print "Error: unable to start thread" while 1: # print "end" pass
在調(diào)試之前通常需要設(shè)置斷點(diǎn),斷點(diǎn)可以設(shè)置在循環(huán)或者條件判斷的表達(dá)式處或者程序的關(guān)鍵點(diǎn)。設(shè)置斷點(diǎn)的方法非常簡單:在代碼編輯框中將光標(biāo)移動(dòng)到需要設(shè)置斷點(diǎn)的行,然后直接按 Ctrl+F8 或者選擇菜單"Run"->"Toggle Line Break Point",更為直接的方法是雙擊代碼編輯處左側(cè)邊緣,可以看到出現(xiàn)紅色的小圓點(diǎn)。當(dāng)調(diào)試開始的時(shí)候,當(dāng)前正在執(zhí)行的代碼會(huì)直接顯示為藍(lán)色。下圖中設(shè)置了三個(gè)斷點(diǎn),藍(lán)色高亮顯示的為正在執(zhí)行的代碼。
斷點(diǎn)設(shè)置
表達(dá)式求值:在調(diào)試過程中有的時(shí)候需要追蹤一些表達(dá)式的值來發(fā)現(xiàn)程序中的問題,Pycharm 支持表達(dá)式求值,可以通過選中該表達(dá)式,然后選擇“Run”->”Evaluate Expression”,在出現(xiàn)的窗口中直接選擇 Evaluate 便可以查看。
Pycharm同時(shí)提供了 Variables 和 Watches 窗口,其中調(diào)試步驟中所涉及的具體變量的值可以直接在 variable 一欄中查看。
變量查看
如果要?jiǎng)討B(tài)的監(jiān)測某個(gè)變量可以直接選中該變量并選擇菜單”Run”->”Add Watch”添加到 watches 欄中。當(dāng)調(diào)試進(jìn)行到該變量所在的語句時(shí),在該窗口中可以直接看到該變量的具體值。
知識(shí)點(diǎn)擴(kuò)展:
對于 python 代碼的調(diào)試我們通常都是使用 IDE 自帶的調(diào)試功能。但是 IDE 提供的調(diào)試功能存在局限性,例如在測試服務(wù)器上調(diào)試代碼,但是又不可能在測試服務(wù)器上安裝 IDE 進(jìn)行調(diào)試。這時(shí)我們就可以利用下面所講解的三個(gè)工具進(jìn)行調(diào)試。
零、準(zhǔn)備調(diào)試代碼
在講解三個(gè)調(diào)試工具前,我們先編寫待調(diào)試的代碼。代碼很簡單,就是計(jì)算兩個(gè)數(shù)的商。我們在編寫代碼的時(shí)候故意留下了除數(shù)為 0 的 bug。
def division(start, end): for i in range(start, end, -1): num1 = i num2 = i - 1 result = num1 / num2 print(result) if __name__ == '__main__': division(10, 0)
到此這篇關(guān)于python3.7調(diào)試的實(shí)例方法的文章就介紹到這了,更多相關(guān)python3.7怎么調(diào)試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python簡單實(shí)現(xiàn)旋轉(zhuǎn)圖片的方法
這篇文章主要介紹了python簡單實(shí)現(xiàn)旋轉(zhuǎn)圖片的方法,涉及Python中image模塊使用技巧,需要的朋友可以參考下2015-05-05基于Python寫個(gè)"點(diǎn)球大戰(zhàn)"小游戲
這篇文章主要為大家詳細(xì)介紹了如何利用Python寫個(gè)簡單的"點(diǎn)球大戰(zhàn)"小游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-12-12Django Admin實(shí)現(xiàn)上傳圖片校驗(yàn)功能
這篇文章主要介紹了Django Admin實(shí)現(xiàn)上傳圖片校驗(yàn)功能的相關(guān)資料,需要的朋友可以參考下2016-03-03Django基于ORM操作數(shù)據(jù)庫的方法詳解
這篇文章主要介紹了Django基于ORM操作數(shù)據(jù)庫的方法,結(jié)合實(shí)例形式總結(jié)分析了Django使用ORM操作數(shù)據(jù)庫的相關(guān)配置、增刪改查等相關(guān)操作技巧,需要的朋友可以參考下2018-03-03解決編碼問題:UnicodeDecodeError: 'utf-8' codec
這篇文章主要介紹了快速解決編碼問題:UnicodeDecodeError: 'utf-8' codec can't decod,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05