成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

利用PDB實現Python程序調試

開發 后端
Python程序調試的實現可以通過PDB的使用來進行操作。那么今天我們就在這篇文章中為大家詳細介紹一下相關的使用方法。

對于大多數的程序員來說,掌握兩款以上的編程語言應用方法是他們必要的職業技能。那么在這其中,Python就是其中一個選擇比較多的語言。我們在這里可以通過Python程序調試的相關方法的解讀,來了解這一語言的應用特點。

Python程序調試源碼例子

例如,有模擬稅收計算的程序:

  1. #!/usr/bin/python   
  2. def debug_demo(val):   
  3. if val <= 1600 :   
  4. print "level 1"   
  5. print 0   
  6. elif val <= 3500 :   
  7. print "level 2"   
  8. print (val - 1600) * 0.05   
  9. elif val <= 6500 :   
  10. print "level 3"   
  11. print (val - 3500) * 0.10 + (3500-1600) * 0.05   
  12. else:   
  13. print "level 4"   
  14. print (val - 6500) * 0.20 + (6500-3500) * 0.10 + (3500-1600) * 0.05   
  15. #~def debug_demo   
  16. if __name__ == "__main__":   
  17. debug_demo(4500) 

debug_demo函數計算4500的入賬所需的稅收。

如何進行Python程序調試?

1.加入斷點

在需要插入斷點的地方,加入紅色部分代碼:如果_DEBUG值為True,則在該處開始調試(加入_DEBUG的原因是為了方便打開/關閉調試)。

  1. #!/usr/bin/python   
  2. _DEBUG=True 
  3. def debug_demo(val):   
  4. if _DEBUG == True:   
  5. import PDB   
  6. PDB.set_trace()   
  7. if val <= 1600 :   
  8. print "level 1"   
  9. print 0   
  10. elif val <= 3500 :   
  11. print "level 2"   
  12. print (val - 1600) * 0.05   
  13. elif val <= 6500 :   
  14. print "level 3"   
  15. print (val - 3500) * 0.10 + (3500-1600) * 0.05   
  16. else:   
  17. print "level 4"   
  18. print (val - 6500) * 0.20 + (6500-3500) * 0.10 + (3500-1600) * 0.05   
  19. #~def debug_demo   
  20. if __name__ == "__main__":   
  21. debug_demo(4500)  

2.開始運行Python程序調試

運行程序./debug_demo.py,得到

  1. > /usr/local/qspace/user_network/debug_demo.py(7)debug_demo()   
  2. -> if val <= 1600 :   
  3. (PDB

-> val <= 1600 : 指示當前執行的語句,(PDB)等待你的調試指令. PDB的指令很豐富,輸入h指令可以查看指令的使用方法。下面簡單介紹Python程序調試常用指令:

查看代碼上下文,l(小寫L)

  1. (PDB)   
  2. _DEBUG=True   
  3. def debug_demo(val):   
  4. if _DEBUG == True:   
  5. import PDB   
  6. PDB.set_trace()   
  7. -> if val <= 1600 :   
  8. print "level 1"   
  9. print 0   
  10. elif val <= 3500 :   
  11.  print "level 2"   
  12. print (val - 1600) * 0.05   
  13. (PDB)  

左邊是行號,右邊是代碼正文。

監視變量:p 變量名

  1. (PDB) p val   
  2. 4500   
  3. (PDB

單步執行: n

  1. -> elif val <= 3500 :   
  2. (PDB)  
  3. import PDB   
  4. PDB.set_trace()   
  5. if val <= 1600 :   
  6. print "level 1"   
  7. print 0   
  8. -> elif val <= 3500 :   
  9. print "level 2"   
  10. print (val - 1600) * 0.05   
  11. elif val <= 6500 :   
  12. print "level 3"   
  13. print (val - 3500) * 0.10 + (3500-1600) * 0.05  

加入斷點:b 行號

  1. (PDB) b 14 

運行到斷點: c

  1. (PDB) c   
  2. > /*****   
  3. -> print "level 3"   
  4. (PDB)  
  5. print 0   
  6. elif val <= 3500 :   
  7. print "level 2"   
  8. print (val - 1600) * 0.05   
  9. elif val <= 6500 :   
  10. B-> print "level 3"   
  11. print (val - 3500) * 0.10 + (3500-1600) * 0.05   
  12. else:   
  13. print "level 4"   
  14. print (val - 6500) * 0.20 + (6500-3500) * 0.10 + (3500-1600) * 0.05  

執行到函數返回前: r

  1. (PDB) r   
  2. level 3   
  3. 195.0   
  4. --Return--   
  5. > /****()   
  6. ->None   
  7. -> print (val - 3500) * 0.10 + (3500-1600) * 0.05   
  8. (PDB

說明:

PDB還有很多其他很多有用的指令,讀者可以自行探索。輸入h,h 命令。就可以得到命令的詳細幫助。

不過,我個人認為一般無需啟動這種Python程序調試方法,一般使用日志輸出進行調試即可,除非遇到了非常微妙的錯誤。這時,單步調試的威力便顯示出來了。

【編輯推薦】

  1. Python單元測試正確使用規則
  2. Python SQLITE數據庫操作簡便易用
  3. 編寫Python程序實現行數統計
  4. Python print正確使用方法淺析
  5. Python算法正確實現方式介紹
責任編輯:曹凱 來源: 博客園
相關推薦

2010-03-03 10:58:05

Python PDB

2011-02-22 11:07:24

Python

2023-10-25 09:26:23

Linux工具

2019-04-08 10:09:04

CPU緩存高性能

2022-09-02 15:08:02

Python郵件發送

2017-04-18 21:54:27

iOSWireShark網絡請求

2021-10-13 09:33:26

Python 多任務進程

2020-06-23 09:48:09

Python開發內存

2024-12-23 14:04:26

Python開發調試工具

2020-12-17 09:20:44

Python自動掃雷腳本

2023-10-07 09:37:53

2021-10-14 10:05:17

開源項目代碼

2009-06-19 16:36:29

Java程序調試

2017-03-03 10:47:57

TensorFlowtfdbg機器學習

2011-07-26 14:44:53

調試 Xcode

2012-02-15 13:26:56

IndexedDB

2016-03-01 14:37:38

iOSLLDB調試技巧

2018-05-30 10:22:47

電商平臺

2010-03-04 09:49:58

Python Hell

2020-03-18 09:23:24

Python數據SQL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天干视频网 | 日韩精品免费 | 99精品在线观看 | 久久久久久免费观看 | 91极品欧美视频 | 欧美日韩视频在线第一区 | 亚洲综合在线网 | 久久久久国产一级毛片高清网站 | 国产一区二区久久 | 欧美一级视频免费看 | 精品亚洲一区二区三区 | 国产天天操 | 久久九精品 | 一道本不卡视频 | 在线视频一区二区 | 欧美视频在线一区 | 精品自拍视频在线观看 | 久久久久久久99 | 日韩在线资源 | 日韩中文字幕 | 亚洲欧美视频一区二区 | 91欧美精品成人综合在线观看 | 亚洲欧美在线观看 | 日韩久久久久久 | 性高朝久久久久久久3小时 av一区二区三区四区 | 天堂综合网久久 | 久久久xx| 成人在线观看网址 | 成人亚洲一区 | 五月婷婷导航 | 亚洲一区二区三区四区五区中文 | 亚洲精品免费视频 | 亚洲啪啪| 成人亚洲精品久久久久软件 | 一区二区三区四区视频 | 欧美在线观看一区 | a级片在线观看 | av在线免费看网址 | 97在线观视频免费观看 | 国产91九色 | 欧美日韩电影免费观看 |