python 設(shè)計和調(diào)試

2021-09-15 14:54 更新

練習(xí)36.設(shè)計和調(diào)試

現(xiàn)在你已經(jīng)學(xué)會了if 語句,我將給你一些使用for 循環(huán)while 循環(huán)的規(guī)則,以免你日后碰到麻煩。我還會教你一些調(diào)試的小技巧,以便你能發(fā)現(xiàn)自己程序的問題。最后,你將需要設(shè)計一個和上節(jié)類似的小游戲,不過內(nèi)容略有更改。

IF 語句的規(guī)則:

  1. 每一個“if 語句”必須包含一個 else.
  2. 如果這個else永遠(yuǎn)都不應(yīng)該被執(zhí)行到,因為它本身沒有任何意義,那你必須在else語句后面使用一個叫做die的函數(shù),讓它打印出錯誤信息,這和上一節(jié)的習(xí)題類似,這樣你可以找到很多的錯誤。
  3. “if 語句”的嵌套不要超過 2 層,最好盡量保持只有 1 層。
  4. 將“if 語句”當(dāng)做段落來對待,其中的每一個if-elif-else 組合就跟一個段落的句子一樣。在這種組合的最前面和最后面留一個空行以作區(qū)分。
  5. 你的布爾測試應(yīng)該很簡單,如果它們很復(fù)雜的話,你需要將它們的運算事先放到一個 變量里,并且為變量取一個好名字。

如果你遵循以上規(guī)則,你就會寫出比大部分程序員都好的代碼來?;氐缴弦还?jié)練習(xí),看看我有沒有遵循這些規(guī)則,如果沒有的話,就將其改正過來。

Warning:在日常編程中不要死板的遵守規(guī)則。在訓(xùn)練中,你需要通過這些規(guī)則的應(yīng)用來鞏固你學(xué)到的知識,而在實際編程中這些規(guī)則有時其實很蠢。如果你覺得哪個規(guī)則很蠢,就別使用它。

循環(huán)的規(guī)則

  1. 只有在循環(huán)永不停止時使用“while循環(huán)”,這意味著你可能永遠(yuǎn)都用不到。這條只有 Python 中成立,其他的語言另當(dāng)別論。
  2. 其他類型的循環(huán)都使用“for循環(huán)”,尤其是在循環(huán)的對象數(shù)量固定或者有限的情況下。

調(diào)試的小技巧

  1. 不要使用 “debugger”。Debugger所作的相當(dāng)于對病人的全身掃描。你不會得到某方面的有用信息,而且你會發(fā)現(xiàn)它輸出的信息大部分沒有用,或者只會讓你更困惑。
  2. 最好的調(diào)試程序的方法是使用print,在各個你想要檢查的關(guān)鍵環(huán)節(jié)將關(guān)鍵變量打印出來,從而檢查哪里是否有錯。
  3. 讓程序一部分一部分地運行起來。不要等一個很長的腳本寫完后才去運行它。寫一點,運行一點,修改一點。

家庭作業(yè)

寫一個和上節(jié)類似的小游戲。任何題材的游戲都可以。盡量花一周的時間讓這個游戲有趣一些,作為附加題,你可以盡量多的使用列表,函數(shù)和模塊(還記得練習(xí)13嗎?),而且,盡量弄一些新的Python代碼讓你的游戲運行起來。

在你開始編碼之前,你應(yīng)該先畫一張地圖出來,提前設(shè)計出玩家可能遇到的房間、怪物以及陷阱等。

當(dāng)你畫好了梯度,你就可以開始編碼了。如果你發(fā)現(xiàn)地圖有問題的話,修改一下,讓代碼和地圖相匹配。

完成一個軟件的最好方式是把它們拆解為像下面這樣的小塊:

  1. 在紙上寫下你完成這個軟件所需要做的所有任務(wù)。這就是你的待辦事項列表。
  2. 先找到你列表中最容易的事情。
  3. 在你的源代碼中增加注釋,作為你完成這項任務(wù)的指南。
  4. 在這些注釋下面,開始編碼。
  5. 然后立即運行你的代碼,看它是否正常工作。
  6. 循環(huán)的進(jìn)行代碼編寫,測試運行,以及代碼修正,直到代碼正常運行。
  7. 在你的列表中劃掉剛完成的任務(wù),然后再挑選下一個最容易完成的任務(wù),重復(fù)進(jìn)行以上步驟。

這套程序會幫助你在寫代碼的時候保持系統(tǒng)的、一致的風(fēng)格。當(dāng)你開始工作的時候,更新你的任務(wù)清單,增加你要做的,并刪除已完成的。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號