這一題 Zed 爲我們總結了一些經驗技巧,一起來看看吧。
if 語句的規則
- 每一個 if 語句必須包含一個
else
。 - 如果因爲這個
else
本身沒有意義而永遠都不應該被執行到,那麼就必須在這個 else 語句的後面使用一個函數,讓它能夠打印錯誤信息,以便它能死給你看。就向上一題。 - if 語句的嵌套不要超過 2 層,最好只有 1 層。這意味着如果在 if 裏又有一個 if ,那最好把第二個 if 放在另一個函數裏。
- 將 if 語句當作段落來對待,其中每一個
if, elif, else
組合就跟一個段落的句子組合一樣。在這種組合的最前面和最後面留一個空行以作區分。 - 你的布爾測試應很簡單,如果它們很複雜的話,你需要將它們的運算事先放到一個變量裏,並且爲變量取一個好名字。
在日常編程中不要成爲這些規則的奴隸。在訓練中,你需要通過這些規則的應用來鞏固你學到的知識,而在實際編程中這些規則有時其實很蠢。如果你覺得哪個規則很蠢,就別使用它。
第一條和第二條嚴格來說是沒有必要的,沒有 else
根本不會報錯。不過我覺得 Zed 的意思恐怕是想說明——事情總有意外,即便程序正常的情況下 else
永不到,但不正常的時候留有報錯的功能可以節省不少檢查的時間。
循環的規則
- 只有在循環永不停止時使用 while 循環,這以爲着你可能永遠都永不到。這條只有 python 中成立,其他語言另當別論。
- 其他類型的循環都使用 for 循環,尤其是在循環的對象數量固定或者有限的情況下。
調試(debug)的小技巧
- 不要使用 “debugger”。 Debugger 所做的相當於對病人做全身掃描。你並不會得到某方面的有用信息,而且你會發現它輸出的信息太多,並且大部分沒用,或者讓你困擾。
- 最好的調試方式是使用
print
在各個想要檢查的關鍵環節將關鍵變量打印出來,從而檢查哪裏是否出錯了。 - 讓程序一部分一部分地運行起來。不要等一個很長的腳本寫完之後纔去運行它。寫一點,運行一點,再修改一點。
家庭作業
寫一個和上節練習類似的遊戲。同類的任何題材的遊戲都可以,花一個星期讓它儘可能有趣一些。作爲加分習題,你可以儘量多使用列表、函數、以及模組(記得習題 13 嗎?),而且儘量多弄一些新的 Python 代碼讓你的遊戲跑起來。
不過有一點需要注意,你應該把遊戲的設計先寫出來。在你寫代碼之前,你應該設計出遊戲的地圖,創建出玩家會碰到的房間、怪物、以及陷阱等環節。
一旦搞定了地圖,你就可以寫代碼了。如果你發現地圖有問題,就調整一下地圖,讓代碼和地圖互相符合。
最後一個建議:每一個程序員在開始一個新的大項目時,都會被非理性的恐懼影響到。爲了避免這種恐懼,他們會拖延時間,到最後一事無成。我有時會這樣,每個人都會有這樣的經歷,避免這種情況的最好的方法是把自己要做的事情列出來,一次完成一樣。
開始做吧。先做一個小一點的版本,擴充它讓它變大,把自己要完成的事情一一列出來,然後逐個完成就可以了
我的答案
(先挖坑)