- 小小的Python編程故事
- 毛雪濤 丁毓峰編著
- 790字
- 2019-07-25 11:24:41
2.2 錯在哪?打印調試信息
小小家門口有家蛋糕店,今天打出了一個促銷廣告:購買蛋糕總價小于或等于100元時,返還10%現金;購買總價高于100元但低于200元時,低于100元的部分返還10%,高于100元的部分返還7.5%;購買總價高于200元但低于400元時,高于200元的部分返還5%;購買總價超過400元時,超過400元的部分返還3%,多買多送。小小一看,這個規則太復雜了,到底能有多少優惠,只能寫個程序來算一算了。
程序代碼如下:


選擇菜單命令Run→Run Module運行程序,輸入購買的總價,得到應返現的金額,如圖2.3所示。

圖2.3 程序運行的結果
對這個結果滿意嗎?購買總價為50元時,總優惠金額為0!顯然這個結果是錯誤的。必須通過調試來找出程序中的錯誤。
如何調試程序呢?一般可以分三個步驟:
第一步,讓程序分段運行。也就是說,一段一段地來排除錯誤,逐漸縮小抓蟲子的范圍。這就需要使用一些辦法,把程序分成一段一段的,運行一段后就停下來。
第二步,檢查程序運行到分段處時,變量的值是否正確。
第三步,確定出錯的根源在哪里,并進行修正,然后再回到第一步進行新一輪調試。
首先,小小在程序中添加了一些 print()語句,通過輸出一些有用的中間信息來判斷錯誤在哪,修改后的代碼如下:


程序運行結果如圖2.4所示。

圖2.4 輸出中間信息
通過輸出的中間信息,小小發現,當輸入10元的總價時,其應該處于0~100的區間范圍,可是程序卻定位在100以上的范圍了。通過進一步分析,發現是程序讀取的優惠范圍這里出錯了。
因此,將代碼進行如下修改:

再次運行,結果如圖2.5所示。

圖2.5 含有調試信息的程序運行結果
這個結果到底對不對?小小進行了驗算。當購買金額為10元時,返現為0.1×10=1元,正確;當購買金額為120元時,返現為0.1×100+0.075×(120-100)=11.5元,正確;當購買金額為280元時,返現為0.1×100+0.075×100+0.05×(280-200)=21.5,正確!
程序正確運行后,記得把那些調試用的print語句都去掉哦!再次編輯代碼,刪除調試用的print語句,然后,隨意運行程序吧!注意,輸入金額為0時程序會退出。
- Spring 5.0 By Example
- 深入理解Django:框架內幕與實現原理
- 從學徒到高手:汽車電路識圖、故障檢測與維修技能全圖解
- AutoCAD VBA參數化繪圖程序開發與實戰編碼
- Learning SciPy for Numerical and Scientific Computing(Second Edition)
- Java:High-Performance Apps with Java 9
- Swift Playgrounds少兒趣編程
- 深度學習:Java語言實現
- PHP+Ajax+jQuery網站開發項目式教程
- iOS自動化測試實戰:基于Appium、Python與Pytest
- Mastering Linux Security and Hardening
- Python 3 數據分析與機器學習實戰
- 計算機應用基礎項目化教程
- Modular Programming with JavaScript
- Node.js應用開發