鍍金池/ 教程/ Python/ exercise36.設(shè)計(jì)和調(diào)試
附錄 A-練習(xí) 9:生成一個(gè)空文件(Touch, New-Item)
附錄 A-練習(xí) 10:復(fù)制文件 (cp)
exercise44.繼承 Vs.包含
附錄 A-練習(xí) 14:刪除文件 (rm)
附錄 A-練習(xí) 11:移動(dòng)文件 (mv)
exercise46.項(xiàng)目骨架
附錄 A-練習(xí) 3:如果你迷路了
exercise37.復(fù)習(xí)符號(hào)
exercise47.自動(dòng)化測試
exercise3.數(shù)字和數(shù)學(xué)計(jì)算
附錄 A-練習(xí) 1:安裝
exercise32.循環(huán)和列表
exercise31.做出決定
exercise42.對(duì)象、類、以及從屬關(guān)系
exercise48.更復(fù)雜的用戶輸入
下一步
簡介
附錄 A-練習(xí) 7:刪除路徑 (rmdir)
exercise49.寫代碼語句
exercise18.命名, 變量, 代碼, 函數(shù)
exercise12.提示別人
exercise14.提示和傳遞
exercise40.模塊, 類和對(duì)象
附錄 A-練習(xí) 12:查看文件 (less, MORE)
exercise9.打印, 打印, 打印
exercise13.參數(shù), 解包, 變量
exercise30. Else 和 If
exercise28. 布爾表達(dá)式
附錄 A-練習(xí) 4:創(chuàng)建一個(gè)路徑 (mkdir)
附錄 A-練習(xí) 15:退出命令行 (exit)
exercise25. 更多更多的練習(xí)
exercise6.字符串和文本
exercise2.注釋和井號(hào)“#”
exercise21. 函數(shù)的返回值
附錄 A-下一步
exercise1.第一個(gè)程序
exercise23. 閱讀代碼
附錄 A-練習(xí) 5:改變當(dāng)前路徑 (cd)
exercise17.更多文件操作
exercise24. 更多的練習(xí)
exercise19.函數(shù)和變量
exercise51.從瀏覽器獲取輸入
exercise22. 到目前為止你學(xué)到了什么?
exercise41.學(xué)會(huì)說面向?qū)ο?/span>
exercise52.開始你的 web 游戲
exercise20. 函數(shù)和文件
exercise15.讀文件
exercise45.你來制作一個(gè)游戲
exercise10.那是什么?
exercise8.打印, 打印
exercise35.分支和函數(shù)
exercise26. 恭喜你,可以進(jìn)行一次考試了
exercise33.while 循環(huán)
exercise29. IF 語句
exercise36.設(shè)計(jì)和調(diào)試
exercise0.安裝和準(zhǔn)備
exercise50.你的第一個(gè)網(wǎng)站
附錄 A-練習(xí) 2:路徑, 文件夾, 名錄 (pwd)
exercise38.列表操作
附錄 A-練習(xí) 6:列出當(dāng)前路徑 (ls)
exercise16.讀寫文件
exercise4.變量和命名
exercise34.訪問列表元素
exercise11.提問
exercise43.基本的面向?qū)ο蟮姆治龊驮O(shè)計(jì)
附錄 A-簡介
附錄 A-練習(xí) 8:目錄切換(pushd, popd)
來自老程序員的建議
exercise27. 記住邏輯
exercise5.更多的變量和打印
exercise7.更多的打印(輸出)
附錄 A-練習(xí) 13:輸出文件 (cat)
exercise39.字典,可愛的字典

exercise36.設(shè)計(jì)和調(diào)試

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

IF 語句的規(guī)則:

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

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

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

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

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

調(diào)試的小技巧

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

家庭作業(yè)

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

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

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

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

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

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