笨辦法學python習題36設計與除錯

2021-09-12 13:39:22 字數 2037 閱讀 9834

之前大致看了一下這一章的內容,應該算複習篇吧,開始吧

if語句的規則

1.每一條if語句必須包含乙個else。

2.如果這個else永遠不應該被執行到,因為它本身沒有任何意義,那你必須在else語句後面使用乙個叫做die的函式,讓他列印出錯誤資訊並且「死」給你看,這和上乙個習題類似,這樣你可以找到很多的錯誤。

3.if語句的巢狀不要超過兩層,最好盡量保持只有一層。這意味著,如果你在if裡邊又有了乙個if,那你就需要把第二個ifi移到另乙個函式裡面。

4.將if語句當作段落來對待其中的每乙個if、elif、else組合就跟段落的句子組合組合一樣,這種組合的最前面和最後面留乙個空行以作區分。

5.你的布林測試應該很簡單,如果他們很複雜,你需要將他們的運算事先放到乙個變數裡,並且為變數取乙個好名字。

遵循上面的規則,你就會寫出比大部分程式設計師都好的**來,回到上乙個習題中,看看我有沒有遵循這些規則,如果沒有的話,就將其改正過來。

謹遵作者教誨,我將if語句中比較複雜的布林表示式賦值給了乙個變數

迴圈的規則

1.只有在迴圈永不停止時使用「while 迴圈」,這意味著你可能永遠都用不到。這條只有python中成立,其他的語言另當別論。

2.其他型別的迴圈都使用for迴圈,尤其是在迴圈的物件與數量固定或者有限的情況下。

除錯的小技巧

1.不要使用「偵錯程式」(debuger)。掃瞄器所做的相當於對病人的全身掃瞄。你並不會得到某方面的有用資訊,而且你會發現他輸出的資訊太多,而且大部分沒有用,或者是會讓你更加困惑。

2.最好的除錯程式的方法是使用print在各個想要檢查的關鍵環節將關鍵變數列印出來,從而檢查那裡是否有錯。

3.讓程式一部分一部分地執行起來。不要等乙個很長的指令碼寫完後才去執行它,寫一點,執行一點,再修改一點。

家庭作業

寫乙個和上乙個習題類似的遊戲。同類的任何題材的遊戲都可以,花乙個星期讓他盡可能有趣一些。作為附加練習,你盡可能多使用列表、函式以及模組(記得習題13嗎?),而且盡量多弄一些新的python**讓你的遊戲跑起來。

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

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

最後乙個建議:每乙個程式設計師再開始乙個新的大專案時都會被非理性的恐懼影響到,為了避免這種恐懼,他們會拖延時間,最後一事無成。我有時就會這樣,每個人都會有這樣的經歷,避免這種情況的最好的方法是把自己要做的事情列出來,一次完成一樣。

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

已經很久沒更新了,今天把坑填上吧。

執行結果:

好了,這就是全部了,再語法上和書中相比好像沒什麼創新,我花時間比較久的是反而是遊戲內容,這是我高中看過的一部名叫死亡筆記的動漫改編的。 

笨辦法學python加分習題36

python版本 3 若有錯誤,敬請指出 模組名稱 測試.py 我可能是個傻姑娘.加分習題36 def a print 吃西紅柿炒蛋時,你常常煩惱是該先吃西紅柿還是先雞蛋嗎?print a 是 nb 否 answer input if answer.upper a b elif answer.upp...

《笨辦法學python》加分習題36 我的答案

本來想說寫個中文的行不行,果然試試是不行的,哈哈哈哈 清晨的一縷陽光灑下,你懶慵慵的伸了個懶腰.answer raw input 你想?if 起床 or 上班 in answer go work elif 睡覺 or 賴床 in answer sleep else print 再回答次 mornin...

《笨辦法學python》習題38 40

mystuff 然後作者又給出了乙個錯誤的情況 class thing object def test hi print hia thing a.test hello 錯誤原因是test 只可以接受乙個引數,卻給了兩個。也就是 a.test hello 實際上是test a,hello 從這裡開始到...