91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python斷點調試的方法

發布時間:2020-08-04 09:52:09 來源:億速云 閱讀:162 作者:清晨 欄目:編程語言

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

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

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

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

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

因此,選擇合理的調試方法和工具,對于開發來說意義重大。

在寫 Python 代碼的時候,我習慣的調試方法很簡單,就是在程序里增加輸出,以便了解程序的運行路徑和變量的值。

以下面這段代碼為例:

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

即使這樣不長的一段代碼,如果對于某些輸入,最后輸出的值和你的預期不一致,想要用肉眼從中看出到底哪里出了問題也并不是一目了然的事情。

于是我會添加一些輔助的代碼:

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

通過添加類似的輸出內容,就能比較清晰地了解程序的運行狀態。

不過,直接通過輸出來調試,有時候會需要一點經驗判斷,決定在哪里輸出什么數據。尤其當程序復雜之后,需要參考的數值會很多,全部都輸出會很繁瑣。

一種更便捷更直觀的方式就是使用斷點調試。

斷點(break point)是指在代碼中指定位置,當程序運行到此位置時變中斷下來,并讓開發者可查看此時各變量的值。因斷點中斷的程序并沒有結束,可以選擇繼續執行。

實現斷點調試需要 IDE 的支持。下面以 PyCharm 來演示一下,仍然是前面的代碼:

python斷點調試的方法

在某一行代碼的左側欄點擊,就可以在這行增加斷點。現在在 3 個 if 判斷的地方都加上斷點。

選擇 debug,程序開始運行。

python斷點調試的方法

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

python斷點調試的方法

選擇“resume program”,程序就會繼續執行,直到遇到下一個斷點。

python斷點調試的方法

有了斷點功能的幫助,調試的時候就方便許多,很容易觀察程序運行時的狀態。

在斷點調試時,還有個經常一起使用的功能就是單步調試。

python斷點調試的方法

在程序中斷時,選擇“Step Over”,會向下執行一行代碼后繼續中斷。

當所處代碼行中有函數時,“Step Into”會中斷在函數內部,之后將在其中單步執行。對應的,“Step Out”將中斷在執行完當前所在函數后的位置。

python斷點調試的方法

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

python斷點調試的方法

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

當然,比調試工具更重要的,還是調試的思路。遇到錯誤時,讀懂報錯信息,分析出錯原因,并逐步定位問題所在,而不是盲目地修改代碼、無意義地重復運行,才是解決問題的關鍵。

看完了這篇文章,相信你對python斷點調試的方法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

资溪县| 佛坪县| 贵定县| 洪泽县| 尼玛县| 毕节市| 凤凰县| 昌邑市| 贞丰县| 闻喜县| 炎陵县| 佛教| 博爱县| 泽普县| 文登市| 稷山县| 梓潼县| 淳化县| 涿鹿县| 乐平市| 沂源县| 陆河县| 马尔康县| 田阳县| 石屏县| 玉溪市| 澄迈县| 丰都县| 郧西县| 临西县| 女性| 岑溪市| 宝应县| 商洛市| 新余市| 新河县| 桐梓县| 七台河市| 嘉义县| 凌云县| 元氏县|