Python Debug調試技巧


——————·今天是2020年的第14·——————

這是ITester軟件測試小棧第89次推文

Debug 對於任何coding人士都是一項非常重要的技能,它能夠幫助我們准確的定位錯誤,發現程序中的 bug。有時候通過程序運行時的報錯可以很容易的找到出錯的位置,但是有時候必須得通過調試程序才能找出我們的錯誤,以下介紹一些debug調試技巧。

方法一

利用print()

通過print()將可能有問題的變量打印出來

def fun(s):
    n = int(s)
    print(' n = %d' % n)
    return 100 / n


def main():
    fun('0')


main()

缺點:調試完后程序里到處都是print(),用完得刪掉它,否則運行結果會包含很多垃圾信息。

方法二

利用斷言

凡是可以用print()來輔助查看的地方,都可以用斷言(assert)來替代,如果斷言失敗,assert語句本身就會拋出AssertionError。

def fun(s):
    n = int(s)
    #assert意味,表達式n != 0應該是True,否則,根據程序運行的邏輯,后面的代碼肯定會出錯
    #如果斷言失敗,assert語句本身就會拋出AssertionError
    assert n!=0,'n is zero!'
    return 100 / n


def main():
    fun('0')


main()

缺點:程序中如果到處充斥着assert,和print()相比也好不到哪去。這時,啟動Python解釋器時可以用-O參數來關閉assert

方法三

打斷點

1.添加斷點:直接在標記處點擊鼠標左鍵。取消斷點時,在同一個位置此點擊即可。如果斷點所在行代碼變藍,表示,斷點已經處於該行代碼,但是並未執行。

2.利用Debug運行代碼(點擊七星瓢蟲圖標或者通過“運行->調試”),快捷鍵:alt+shift+F9

3.根據所需進行代碼調試,此時,在pycharm 主頁面的下方窗口出現2個選項(Debugger 、Console),Debug的調試方式如下所示:

其中, Debugger中可以查看變量信息;Console是用來顯示當前控制台輸出的信息。

show execution point (F10) : 顯示當前所有斷點

step over(F8) : 單步步過(會直接執行完該函數)在函數內遇到子函數時不會進入子函數內單步執行,而是將子函數整個執行完再停止,也就是把子函數整個作為一步。在不存在子函數的情況下是和Step into效果一樣的(簡而言之,越過子函數,但子函數會執行)

step into(F7) :單步步入(會跟蹤到函數內部去,如果函數內部調用了其他函數或模塊,則又會跟蹤到其他的函數或者模塊當中)

step into my code(Alt + Shift +F7) :執行下一行但忽略libraries(導入庫的語句)

force step into(Alt + Shift +F7): 執行下一行忽略lib和構造對象等  

step out(Shift+F8):返回上一層函數

run to cursor(Alt +F9) :直接跳到下一個斷點

Resume Program:斷點調試后,點擊按鈕,繼續執行程序

stop(ctrl+F2):停止調試

最后是今天的分享:Pycharm常用快捷鍵速查圖(Windos&Mac)

ITester軟件測試小棧今日分享

獲取內容

Pycharm常用快捷鍵速查圖

領取方式

微信公眾號后台回復:Pycharm速查圖

有圖有真相

Pycharm常用快捷鍵速查圖可以設為桌面或者打印出來放在手邊,想不起來時瞄一眼,很快就能freestyle的使用快捷鍵,代碼寫得看起來更加溜。

以上

That's  all

ITester軟件測試小棧

往期內容寵幸

叮—這有一打讓你666的測試終極資料包,請查收!

打開PyCharm永久激活的這兩個錦囊,再也不用擔心寫代碼的時候讓我付費了!

QQ空間面試題放送,速度教科書式撲街補救offer!

金九銀十加薪季,測試題預熱一波。

測試面試題集-測試基礎理論

測試面試題集-測試用例設計:登錄、購物車、QQ收藏表情、轉賬、充值、提現

測試面試題集-生活物品測試:杯子、傘、鋼筆、桌子

Selenium系列文章匯總

30個MySQL數據庫常用小技巧,吐血整理

SQL從入門到入魔之初入門

SQL從入門到入魔之數據庫基本操作

SQL從入門到入魔之select簡單查詢

MySQL之數據庫基本操作語句

MySQL之創建表以及數據庫增刪改操作

MySQL之數據庫基本查詢語句

MySQL之數據庫多表查詢

速看,APP測試之ADB最全指南!

APP測試之Monkey壓力測試(一)

APP測試之Monkey壓力測試(二)

快來星標 置頂 關注

后台回復資源取干貨

想要獲取相關資料軟件 ?

測試交流Q群:727998947


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM