——————·今天是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軟件測試小棧
往期內容寵幸
打開PyCharm永久激活的這兩個錦囊,再也不用擔心寫代碼的時候讓我付費了!
QQ空間面試題放送,速度教科書式撲街補救offer!
金九銀十加薪季,測試題預熱一波。
測試面試題集-測試用例設計:登錄、購物車、QQ收藏表情、轉賬、充值、提現
Selenium系列文章匯總
MySQL之數據庫基本操作語句
MySQL之創建表以及數據庫增刪改操作
MySQL之數據庫基本查詢語句
快來星標 置頂 關注我
后台回復資源取干貨



想要獲取相關資料和軟件 ?
測試交流Q群:727998947
