在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

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

exercise45.你來制作一個游戲

你要開始學(xué)會自食其力了。通過閱讀這本書你應(yīng)該已經(jīng)學(xué)到了一點,那就是你需要的所有的信息網(wǎng)上都有,你只要去搜索就能找到。唯一困擾你的就是如何使用正確的詞匯進(jìn)行搜索。學(xué)到現(xiàn)在,你在挑選搜索關(guān)鍵字方面應(yīng)該已經(jīng)有些感覺了?,F(xiàn)在已經(jīng)是時候了,你需要嘗試寫一個大的項目,并讓它運行起來。

以下是你的需求:

1.制作一個截然不同的游戲。 2.使用多個文件,并使用 import 調(diào)用這些文件。確認(rèn)自己知道 import 的用法。 3.對于每個房間使用一個 class,class 的命名要能體現(xiàn)出它的用處(例如 GoldRoom、KoiPondRoom)。 4.你的執(zhí)行器代碼應(yīng)該了解這些房間,所以創(chuàng)建一個類來調(diào)用并且記錄這些房間。有很多種方法可以達(dá)到這個目的,不過你可以考慮讓每個房間返回下一個房間,或者設(shè)置一個變量,讓它指定下一個房間是什么。

其他的事情就全靠你了?;ㄒ粋€星期完成這件任務(wù),做一個你能做出來的最好的游戲。使用你學(xué)過的任何東西(類,函數(shù),字典,列表……)來改進(jìn)你的程序。這節(jié)課的目的是教你如何構(gòu)建 class 出來,而這些 class 又能調(diào)用到其它 Python 文件中的 class。

我不會詳細(xì)地告訴你告訴你怎樣做,你需要自己完成。試著下手吧,編程就是解決問題的過程,這就意味著你要嘗試各種可能性,進(jìn)行實驗,經(jīng)歷失敗,然后丟掉你做出來的東西重頭開始。當(dāng)你被某個問題卡住的時候,你可以向別人尋求幫助,并把你的代碼貼出來給他們看。如果有人刻薄你,別理他們,你只要集中精力在幫你的人身上就可以了。持續(xù)修改和清理你的代碼,直到它完整可執(zhí)行為止,然后再研究一下看它還能不能被改進(jìn)。

祝你好運,下個星期你做出游戲后我們再見。

評估你的游戲

這節(jié)練習(xí)的目的是檢查評估你的游戲。也許你只完成了一半,卡在那里沒有進(jìn)行下去,也許你勉強做出來了。不管怎樣,我們將串一下你應(yīng)該弄懂的一些東西,并確認(rèn)你的游戲里有使用到它們。我們將學(xué)習(xí)如何用正確的格式構(gòu)建 class,使用 class 的一些通用習(xí)慣,另外還有很多的“書本知識”讓你學(xué)習(xí)。

為什么我會讓你先行嘗試,然后才告訴你正確的做法呢?因為從現(xiàn)在開始你要學(xué)會“自給自足”,以前是我牽著你前行,以后就得靠你自己了。后面的習(xí)題我只會告訴你你的任務(wù),你需要自己去完成,在你完成后我再告訴你如何可以改進(jìn)你的作業(yè)。

一開始你會覺得很困難并且很不習(xí)慣,但只要堅持下去,你就會培養(yǎng)出自己解決問題的能力。你還會找出創(chuàng)新的方法解決問題,這比從課本中拷貝解決方案強多了。

函數(shù)的風(fēng)格

以前我教過的怎樣寫好函數(shù)的方法一樣是適用的,不過這里要添加幾條:

  • 由于各種各樣的原因,程序員將 class (類)里邊的函數(shù)稱作 method (方法)。很大程度上這只是個市場策略(用來推銷 OOP),不過如果你把它們稱作“函數(shù)”的話,是會有啰嗦的人跳出來糾正你的。如果你覺得他們太煩了,你可以告訴他們從數(shù)學(xué)方面演示一下“函數(shù)”和“方法”究竟有什么不同,這樣他們會很快閉嘴的。
  • 在你使用 class 的過程中,很大一部分時間是告訴你的 class 如何“做事情”。給這些函數(shù)命名的時候,與其命名成一個名詞,不如命名為一個動詞,作為給 class 的一個命令。就和 list 的 pop (拋出)函數(shù)一樣,它相當(dāng)于說:“嘿,列表,把這東西給我 pop 出去。”它的名字不是 remove_from_end_of_list ,因為即使它的功能的確是這樣,這一串字符也不是一個命令。
  • 讓你的函數(shù)保持簡單小巧。由于某些原因,有些人開始學(xué)習(xí) class 后就會忘了這一條。

類的風(fēng)格

  • 你的 class 應(yīng)該使用 “camel case(駝峰式大小寫)”,例如你應(yīng)該使用 SuperGoldFactory 而不是 super_gold_factory。
  • 你的 init不應(yīng)該做太多的事情,這會讓 class 變得難以使用。
  • 你的其它函數(shù)應(yīng)該使用 “underscore format(下劃線隔詞)”,所以你可以寫 my_awesome_hair, 而不是 myawesomehair 或者 MyAwesomeHair。
  • 用一致的方式組織函數(shù)的參數(shù)。如果你的 class 需要處理 users、dogs、和 cats,就保持這個次序(特別情況除外)。如果一個函數(shù)的參數(shù)是(dog, cat, user),另一個的是(user, cat, dog) ,這會讓函數(shù)使用起來很困難。
  • 不要對全局變量或者來自模組的變量進(jìn)行重定義或者賦值,讓這些東西自顧自就行了。
  • 不要一根筋式地維持風(fēng)格一致性,這是思維力底下的妖怪嘍啰做的事情。一致性是好事情,不過愚蠢地跟著別人遵從一些白癡口號是錯誤的行為——這本身就是一種壞的風(fēng)格。好好為自己著想吧。
  • 永遠(yuǎn)永遠(yuǎn)都使用 class Name(object)的方式定義 class,否則你會碰到大麻煩。

代碼風(fēng)格

  • 為了以方便他人閱讀,為自己的代碼字符之間留下一些空白。你將會看到一些很差的程序員,他們寫的代碼還算通順,但字符之間沒有任何空間。這種風(fēng)格在任何編程語言中都是壞習(xí)慣,人的眼睛和大腦會通過空白和垂直對齊的位置來掃描和區(qū)隔視覺元素,如果你的代碼里沒有任何空白,這相當(dāng)于為你的代碼上了迷彩裝。
  • 如果一段代碼你無法朗讀出來,那么這段代碼的可讀性可能就有問題。如你找不到讓某個東西易用的方法,試著也朗讀出來。這樣不僅會逼迫你慢速而且真正仔細(xì)閱讀過去,還會幫你找到難讀的段落,從而知道那些代碼的易讀性需要作出改進(jìn)。
  • 學(xué)著模仿別人的風(fēng)格寫 Python 程序,直到哪天你找到你自己的風(fēng)格為止。
  • 一旦你有了自己的風(fēng)格,也別把它太當(dāng)回事。程序員工作的一部分就是和別人的代碼打交道,有的人審美就是很差。相信我,你的審美某一方面一定也很差,只是你從未意識到而已。
  • 如果你發(fā)現(xiàn)有人寫的代碼風(fēng)格你很喜歡,那就模仿他們的風(fēng)格。

好的注釋

  • 有程序員會告訴你,說你的代碼需要有足夠的可讀性,這樣你就無需寫注釋了。他們會以自己接近官腔的聲音說“所以你永遠(yuǎn)都不應(yīng)該寫代碼注釋?!边@些人要么是一些顧問型的人物,如果別人無法使用他們的代碼,就會付更多錢給他們讓他們解決問題。要么他們能力不足,從來沒有跟別人合作過。別理會這些人,好好寫你的注釋。
  • 寫注釋的時候,描述清楚為什么你要這樣做。代碼只會告訴你“這樣實現(xiàn)”,而不會告訴你“為什么要這樣實現(xiàn)”,而后者比前者更重要。
  • 當(dāng)你為函數(shù)寫文檔注釋的時候,記得為別的代碼使用者也寫些東西。你不需要狂寫一大堆,但一兩句話寫寫這個函數(shù)的用法還是很有用的。
  • 最后要說的是,雖然注釋是好東西,太多的注釋就不見得是了。而且注釋也是需要維護(hù)的,你要盡量讓注釋短小精悍一語中的,如果你對代碼做了更改,記得檢查并更新相關(guān)的注釋,確認(rèn)它們還是正確的。

為你的游戲評分

現(xiàn)在我要求你假裝成我,板起臉來,把你的代碼打印出來,然后拿一支紅筆,把代碼中所有的錯誤都標(biāo)出來。你要充分利用你在本章以及前面學(xué)到的知識。等你批改完了,我要求你把所有的錯誤改對。這個過程我需要你多重復(fù)幾次,爭取找到更多的可以改進(jìn)的地方。使用我前面教過的方法,把代碼分解成最細(xì)小的單元一一進(jìn)行分析。

這個練習(xí)的目的是訓(xùn)練你對于細(xì)節(jié)的關(guān)注程度。等你檢查完自己的代碼,再找一段別人的代碼用這種方法檢查一遍。把代碼打印出來,檢查出所有代碼和風(fēng)格方面的錯誤,然后試著在不改壞別人代碼的前提下把它們修改正確、

這周我要求你的事情就是批改和糾錯,包含你自己的代碼和別人的代碼,再沒有別的了。這節(jié)習(xí)題難度還是挺大,不過一旦你完成了任務(wù),你學(xué)過的東西就會牢牢記在腦中。