真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python斷點(diǎn)調(diào)試的方法

小編給大家分享一下python斷點(diǎn)調(diào)試的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

員工經(jīng)過長期磨合與沉淀,具備了協(xié)作精神,得以通過團(tuán)隊(duì)的力量開發(fā)出優(yōu)質(zhì)的產(chǎn)品。創(chuàng)新互聯(lián)堅(jiān)持“專注、創(chuàng)新、易用”的產(chǎn)品理念,因?yàn)椤皩W⑺詫I(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡單”。公司專注于為企業(yè)提供網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、電商網(wǎng)站開發(fā),小程序開發(fā),軟件定制網(wǎng)站等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。

實(shí)際上沒人能一次就寫出完美的代碼,除了我。但是世界上只有一個(gè)我。

-- 林納斯·托瓦茲(Linux 之父)

既然不是神,寫代碼自然免不了要修改。修改代碼的過程被稱作調(diào)試,又叫 debug。

剛接觸編程的人,往往對調(diào)試代碼沒有很深的認(rèn)識(shí),覺得把功能做出來就完事了。一旦程序運(yùn)行出現(xiàn)問題,便無從下手。而實(shí)際開發(fā)中,調(diào)試代碼通常要花費(fèi)比新編寫代碼更多的時(shí)間。所謂“行百里者半于九十”,這句話放在軟件開發(fā)上一點(diǎn)不為過。你以為完成了 90% 開發(fā)工作的時(shí)候,剩下的工作可能還要花費(fèi)差不多的時(shí)間。

因此,選擇合理的調(diào)試方法和工具,對于開發(fā)來說意義重大。

在寫 Python 代碼的時(shí)候,我習(xí)慣的調(diào)試方法很簡單,就是在程序里增加輸出,以便了解程序的運(yùn)行路徑和變量的值。

以下面這段代碼為例:

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ù)期不一致,想要用肉眼從中看出到底哪里出了問題也并不是一目了然的事情。

于是我會(huì)添加一些輔助的代碼:

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

運(yùn)行后的效果:

a:2
b:4
====a,b: 2 4
====2 b: 2
====4 c: 2
2

通過添加類似的輸出內(nèi)容,就能比較清晰地了解程序的運(yùn)行狀態(tài)。

不過,直接通過輸出來調(diào)試,有時(shí)候會(huì)需要一點(diǎn)經(jīng)驗(yàn)判斷,決定在哪里輸出什么數(shù)據(jù)。尤其當(dāng)程序復(fù)雜之后,需要參考的數(shù)值會(huì)很多,全部都輸出會(huì)很繁瑣。

一種更便捷更直觀的方式就是使用斷點(diǎn)調(diào)試。

斷點(diǎn)(break point)是指在代碼中指定位置,當(dāng)程序運(yùn)行到此位置時(shí)變中斷下來,并讓開發(fā)者可查看此時(shí)各變量的值。因斷點(diǎn)中斷的程序并沒有結(jié)束,可以選擇繼續(xù)執(zhí)行。

實(shí)現(xiàn)斷點(diǎn)調(diào)試需要 IDE 的支持。下面以 PyCharm 來演示一下,仍然是前面的代碼:

python斷點(diǎn)調(diào)試的方法

在某一行代碼的左側(cè)欄點(diǎn)擊,就可以在這行增加斷點(diǎn)。現(xiàn)在在 3 個(gè) if 判斷的地方都加上斷點(diǎn)。

選擇 debug,程序開始運(yùn)行。

python斷點(diǎn)調(diào)試的方法

輸入 a、b 兩個(gè)值之后,程序就在第一個(gè) if 處中斷,并且在工具欄中顯示出當(dāng)前程序中的各種數(shù)值。

python斷點(diǎn)調(diào)試的方法

選擇“resume program”,程序就會(huì)繼續(xù)執(zhí)行,直到遇到下一個(gè)斷點(diǎn)。

python斷點(diǎn)調(diào)試的方法

有了斷點(diǎn)功能的幫助,調(diào)試的時(shí)候就方便許多,很容易觀察程序運(yùn)行時(shí)的狀態(tài)。

在斷點(diǎn)調(diào)試時(shí),還有個(gè)經(jīng)常一起使用的功能就是單步調(diào)試。

python斷點(diǎn)調(diào)試的方法

在程序中斷時(shí),選擇“Step Over”,會(huì)向下執(zhí)行一行代碼后繼續(xù)中斷。

當(dāng)所處代碼行中有函數(shù)時(shí),“Step Into”會(huì)中斷在函數(shù)內(nèi)部,之后將在其中單步執(zhí)行。對應(yīng)的,“Step Out”將中斷在執(zhí)行完當(dāng)前所在函數(shù)后的位置。

python斷點(diǎn)調(diào)試的方法

這些操作在工具欄有快捷按鈕,也可通過快捷鍵操作。

python斷點(diǎn)調(diào)試的方法

“工欲善其事,必先利其器”。把上述調(diào)試工具熟悉之后,對你的開發(fā)效率將會(huì)有很大提升。

當(dāng)然,比調(diào)試工具更重要的,還是調(diào)試的思路。遇到錯(cuò)誤時(shí),讀懂報(bào)錯(cuò)信息,分析出錯(cuò)原因,并逐步定位問題所在,而不是盲目地修改代碼、無意義地重復(fù)運(yùn)行,才是解決問題的關(guān)鍵。

看完了這篇文章,相信你對python斷點(diǎn)調(diào)試的方法有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


文章題目:python斷點(diǎn)調(diào)試的方法
地址分享:http://weahome.cn/article/gjpcos.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部