# 練習(xí)26. 恭喜你,可以進(jìn)行一次考試了
你已經(jīng)完成這本書(shū)的前半部分了,不過(guò)后半部分才更有趣。你將會(huì)學(xué)習(xí)邏輯,并通過(guò)條件判斷實(shí)現(xiàn)有用的功能。
在你繼續(xù)學(xué)習(xí)之前,你要完成一道試題。這道試題很難,因?yàn)樗枰阈拚齽e人寫(xiě)的代碼。當(dāng)你成為程序員以后,你將需要經(jīng)常面對(duì)別的程序員的代碼,也許還有他們的傲慢態(tài)度,他們會(huì)經(jīng)常說(shuō)自己的代碼是完美的。
這樣的程序員是自以為是不在乎別人的蠢貨。優(yōu)秀的程序員也會(huì)認(rèn)為自己的代碼總有出錯(cuò)的可能,他們會(huì)先假設(shè)是自己的代碼有問(wèn)題,然后用排除法清查所有可能是自己有問(wèn)題的地方,最后才會(huì)得出“這是別人的錯(cuò)誤”這樣的結(jié)論。
在這節(jié)練習(xí)中,你將面對(duì)一個(gè)水平糟糕的程序員,并改好他的代碼。我將習(xí)題 24 和 25 胡亂拷貝到了一個(gè)文件中,隨機(jī)地刪掉了一些字符,然后添加了一些錯(cuò)誤進(jìn)去。大部分的錯(cuò)誤是Python在執(zhí)行時(shí)會(huì)告訴你的,還有一些算術(shù)錯(cuò)誤是你要自己找出來(lái)的。還有的就是格式和拼寫(xiě)錯(cuò)誤了。
所有這些錯(cuò)誤都是程序員很容易犯的,就算有經(jīng)驗(yàn)的程序員也不例外。
這節(jié)練習(xí)中你的任務(wù)是用你所有的技能改進(jìn)這個(gè)腳本。你可以先分析這個(gè)文件,或者你還可以把它像學(xué)期論文一樣打印出來(lái),修正里邊的每一個(gè)缺陷,重復(fù)修正和運(yùn)行的動(dòng)作,直到這個(gè)腳本可以完美地運(yùn)行起來(lái)。在整個(gè)過(guò)程中不要尋求幫助,如果你卡在某個(gè)地方無(wú)法進(jìn)行下去,那就休息一會(huì)晚點(diǎn)再做。
就算你需要幾天才能完成,也不要放棄,直到完全改對(duì)為止。
最后要說(shuō)的是,這個(gè)練習(xí)的目的不是寫(xiě)程序,而是修正現(xiàn)有的程序,你需要訪(fǎng)問(wèn)下面的網(wǎng)站:
~~~
http://learnpythonthehardway.org/book/exercise26.txt
~~~
從那里把代碼復(fù)制粘貼過(guò)來(lái),命名為`1ex26.py`,這也是本書(shū)唯一一處允許你復(fù)制粘貼的地方。
## 常見(jiàn)問(wèn)題
### Q: 我必須引用`ex25.py` 還是可以刪除對(duì)它的引用?
> 兩種都可以. 這個(gè)文件已經(jīng)包含`ex25.py`的函數(shù)了,所以也可以先刪除對(duì)它的引用。
### Q: 當(dāng)我修復(fù)這個(gè)腳本之后,我可以運(yùn)行它嗎?
> 當(dāng)然可以。計(jì)算機(jī)就是用來(lái)幫忙的,盡可能的使用它。
- 序言
- 前言
- 簡(jiǎn)介
- 0:安裝和準(zhǔn)備
- 1:第一個(gè)程序
- 2:注釋和“#”井號(hào)
- 3:數(shù)字和數(shù)學(xué)計(jì)算
- 4:變量和命名
- 5:更多的變量和打印
- 6:字符串和文本
- 7:更多的打?。ㄝ敵觯?/a>
- 8:打印, 打印
- 9:打印, 打印, 打印
- 10:那是什么?
- 11:提問(wèn)
- 12:提示別人
- 13:參數(shù), 解包, 變量
- 14:提示和傳遞
- 15:讀文件
- 16:讀寫(xiě)文件
- 17:更多文件操作
- 18:命名, 變量, 代碼, 函數(shù)
- 19:函數(shù)和變量
- 20:函數(shù)和文件
- 21:函數(shù)的返回值
- 22:到目前為止你學(xué)到了什么?
- 23:閱讀代碼
- 24:更多的練習(xí)
- 25:更多更多的練習(xí)
- 26:恭喜你,可以進(jìn)行一次考試了
- 27:記住邏輯
- 28:布爾表達(dá)式
- 29:IF 語(yǔ)句
- 30:Else 和 If
- 31:做出決定
- 32:循環(huán)和列表
- 33:while循環(huán)
- 34:訪(fǎng)問(wèn)列表元素
- 35:分支和函數(shù)
- 36:設(shè)計(jì)和調(diào)試
- 37:復(fù)習(xí)符號(hào)
- 38:列表操作
- 39:字典,可愛(ài)的字典
- 40:模塊, 類(lèi)和對(duì)象
- 41:學(xué)會(huì)說(shuō)面向?qū)ο?/a>
- 42:對(duì)象、類(lèi)、以及從屬關(guān)系
- 43:基本的面向?qū)ο蟮姆治龊驮O(shè)計(jì)
- 44:繼承Vs.包含
- 45:你來(lái)制作一個(gè)游戲
- 46:項(xiàng)目骨架
- 47:自動(dòng)化測(cè)試
- 48:更復(fù)雜的用戶(hù)輸入
- 49:寫(xiě)代碼語(yǔ)句
- 50:你的第一個(gè)網(wǎng)站
- 51:從瀏覽器獲取輸入
- 52:開(kāi)始你的web游戲
- 來(lái)自老程序員的建議
- 下一步
- 附錄A:命令行教程
- 簡(jiǎn)介
- 安裝和準(zhǔn)備
- 路徑, 文件夾, 名錄 (pwd)
- 如果你迷路了
- 創(chuàng)建一個(gè)路徑 (mkdir)
- 改變當(dāng)前路徑 (cd)
- 列出當(dāng)前路徑 (ls)
- 刪除路徑 (rmdir)
- 目錄切換(pushd, popd)
- 生成一個(gè)空文件(Touch, New-Item)
- 復(fù)制文件 (cp)
- 移動(dòng)文件 (mv)
- 查看文件 (less, MORE)
- 輸出文件 (cat)
- 刪除文件 (rm)
- 退出命令行 (exit)
- 下一步
