創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
成都創(chuàng)新互聯(lián)服務(wù)項目包括遠安網(wǎng)站建設(shè)、遠安網(wǎng)站制作、遠安網(wǎng)頁制作以及遠安網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,遠安網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到遠安省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!小編給大家分享一下python斷點調(diào)試的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
實際上沒人能一次就寫出完美的代碼,除了我。但是世界上只有一個我。
-- 林納斯·托瓦茲(Linux 之父)
既然不是神,寫代碼自然免不了要修改。修改代碼的過程被稱作調(diào)試,又叫 debug。
剛接觸編程的人,往往對調(diào)試代碼沒有很深的認識,覺得把功能做出來就完事了。一旦程序運行出現(xiàn)問題,便無從下手。而實際開發(fā)中,調(diào)試代碼通常要花費比新編寫代碼更多的時間。所謂“行百里者半于九十”,這句話放在軟件開發(fā)上一點不為過。你以為完成了 90% 開發(fā)工作的時候,剩下的工作可能還要花費差不多的時間。
因此,選擇合理的調(diào)試方法和工具,對于開發(fā)來說意義重大。
在寫 Python 代碼的時候,我習(xí)慣的調(diào)試方法很簡單,就是在程序里增加輸出,以便了解程序的運行路徑和變量的值。
以下面這段代碼為例:
def twice(n): n *= 2 return n a = input("a:") b = input("b:") if a > 3: b += 4 if b > 5: c = a + twice(b) else: c = twice(a) + b else: b -= 2 if b < 1: c = a - twice(b) else: c = twice(a) - b print c
即使這樣不長的一段代碼,如果對于某些輸入,最后輸出的值和你的預(yù)期不一致,想要用肉眼從中看出到底哪里出了問題也并不是一目了然的事情。
于是我會添加一些輔助的代碼:
def twice(n): n *= 2 return n a = input("a:") b = input("b:") print "====a,b:", a, b if a > 3: b += 4 print "====1 b:", b if b > 5: c = a + twice(b) print "====1 c:", c else: c = twice(a) + b print "====2 c:", c else: b -= 2 print "====2 b:", b if b < 1: c = a - twice(b) print "====3 c:", c else: c = twice(a) - b print "====4 c:", c print c
運行后的效果:
a:2 b:4 ====a,b: 2 4 ====2 b: 2 ====4 c: 2 2
通過添加類似的輸出內(nèi)容,就能比較清晰地了解程序的運行狀態(tài)。
不過,直接通過輸出來調(diào)試,有時候會需要一點經(jīng)驗判斷,決定在哪里輸出什么數(shù)據(jù)。尤其當(dāng)程序復(fù)雜之后,需要參考的數(shù)值會很多,全部都輸出會很繁瑣。
一種更便捷更直觀的方式就是使用斷點調(diào)試。
斷點(break point)是指在代碼中指定位置,當(dāng)程序運行到此位置時變中斷下來,并讓開發(fā)者可查看此時各變量的值。因斷點中斷的程序并沒有結(jié)束,可以選擇繼續(xù)執(zhí)行。
實現(xiàn)斷點調(diào)試需要 IDE 的支持。下面以 PyCharm 來演示一下,仍然是前面的代碼:
在某一行代碼的左側(cè)欄點擊,就可以在這行增加斷點?,F(xiàn)在在 3 個 if 判斷的地方都加上斷點。
選擇 debug,程序開始運行。
輸入 a、b 兩個值之后,程序就在第一個 if 處中斷,并且在工具欄中顯示出當(dāng)前程序中的各種數(shù)值。
選擇“resume program”,程序就會繼續(xù)執(zhí)行,直到遇到下一個斷點。
有了斷點功能的幫助,調(diào)試的時候就方便許多,很容易觀察程序運行時的狀態(tài)。
在斷點調(diào)試時,還有個經(jīng)常一起使用的功能就是單步調(diào)試。
在程序中斷時,選擇“Step Over”,會向下執(zhí)行一行代碼后繼續(xù)中斷。
當(dāng)所處代碼行中有函數(shù)時,“Step Into”會中斷在函數(shù)內(nèi)部,之后將在其中單步執(zhí)行。對應(yīng)的,“Step Out”將中斷在執(zhí)行完當(dāng)前所在函數(shù)后的位置。
這些操作在工具欄有快捷按鈕,也可通過快捷鍵操作。
“工欲善其事,必先利其器”。把上述調(diào)試工具熟悉之后,對你的開發(fā)效率將會有很大提升。
當(dāng)然,比調(diào)試工具更重要的,還是調(diào)試的思路。遇到錯誤時,讀懂報錯信息,分析出錯原因,并逐步定位問題所在,而不是盲目地修改代碼、無意義地重復(fù)運行,才是解決問題的關(guān)鍵。
看完了這篇文章,相信你對python斷點調(diào)試的方法有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!
文章名稱:python斷點調(diào)試的方法-創(chuàng)新互聯(lián)
URL鏈接:http://m.rwnh.cn/article38/ceedpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、品牌網(wǎng)站設(shè)計、靜態(tài)網(wǎng)站、微信小程序、自適應(yīng)網(wǎng)站、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)