《笨辦法學 python3》系列練習計劃——36.設計和調試

這一題 Zed 爲我們總結了一些經驗技巧,一起來看看吧。

if 語句的規則

  1. 每一個 if 語句必須包含一個 else
  2. 如果因爲這個 else 本身沒有意義而永遠都不應該被執行到,那麼就必須在這個 else 語句的後面使用一個函數,讓它能夠打印錯誤信息,以便它能死給你看。就向上一題。
  3. if 語句的嵌套不要超過 2 層,最好只有 1 層。這意味着如果在 if 裏又有一個 if ,那最好把第二個 if 放在另一個函數裏。
  4. 將 if 語句當作段落來對待,其中每一個 if, elif, else 組合就跟一個段落的句子組合一樣。在這種組合的最前面和最後面留一個空行以作區分。
  5. 你的布爾測試應很簡單,如果它們很複雜的話,你需要將它們的運算事先放到一個變量裏,並且爲變量取一個好名字。

在日常編程中不要成爲這些規則的奴隸。在訓練中,你需要通過這些規則的應用來鞏固你學到的知識,而在實際編程中這些規則有時其實很蠢。如果你覺得哪個規則很蠢,就別使用它。

第一條和第二條嚴格來說是沒有必要的,沒有 else 根本不會報錯。不過我覺得 Zed 的意思恐怕是想說明——事情總有意外,即便程序正常的情況下 else 永不到,但不正常的時候留有報錯的功能可以節省不少檢查的時間。

循環的規則

  1. 只有在循環永不停止時使用 while 循環,這以爲着你可能永遠都永不到。這條只有 python 中成立,其他語言另當別論。
  2. 其他類型的循環都使用 for 循環,尤其是在循環的對象數量固定或者有限的情況下。

調試(debug)的小技巧

  1. 不要使用 “debugger”。 Debugger 所做的相當於對病人做全身掃描。你並不會得到某方面的有用信息,而且你會發現它輸出的信息太多,並且大部分沒用,或者讓你困擾。
  2. 最好的調試方式是使用 print 在各個想要檢查的關鍵環節將關鍵變量打印出來,從而檢查哪裏是否出錯了。
  3. 讓程序一部分一部分地運行起來。不要等一個很長的腳本寫完之後纔去運行它。寫一點,運行一點,再修改一點。

家庭作業

寫一個和上節練習類似的遊戲。同類的任何題材的遊戲都可以,花一個星期讓它儘可能有趣一些。作爲加分習題,你可以儘量多使用列表、函數、以及模組(記得習題 13 嗎?),而且儘量多弄一些新的 Python 代碼讓你的遊戲跑起來。

不過有一點需要注意,你應該把遊戲的設計先寫出來。在你寫代碼之前,你應該設計出遊戲的地圖,創建出玩家會碰到的房間、怪物、以及陷阱等環節。

一旦搞定了地圖,你就可以寫代碼了。如果你發現地圖有問題,就調整一下地圖,讓代碼和地圖互相符合。

最後一個建議:每一個程序員在開始一個新的大項目時,都會被非理性的恐懼影響到。爲了避免這種恐懼,他們會拖延時間,到最後一事無成。我有時會這樣,每個人都會有這樣的經歷,避免這種情況的最好的方法是把自己要做的事情列出來,一次完成一樣。

開始做吧。先做一個小一點的版本,擴充它讓它變大,把自己要完成的事情一一列出來,然後逐個完成就可以了




我的答案

(先挖坑)

返回目錄

《笨辦法學 python3》系列練習計劃——目錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章