鍍金池/ 教程/ Python/ exercise1.第一個(gè)程序
附錄 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)化測(cè)試
exercise3.數(shù)字和數(shù)學(xué)計(jì)算
附錄 A-練習(xí) 1:安裝
exercise32.循環(huán)和列表
exercise31.做出決定
exercise42.對(duì)象、類、以及從屬關(guān)系
exercise48.更復(fù)雜的用戶輸入
下一步
簡(jiǎn)介
附錄 A-練習(xí) 7:刪除路徑 (rmdir)
exercise49.寫代碼語(yǔ)句
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ì)說(shuō)面向?qū)ο?/span>
exercise52.開(kāi)始你的 web 游戲
exercise20. 函數(shù)和文件
exercise15.讀文件
exercise45.你來(lái)制作一個(gè)游戲
exercise10.那是什么?
exercise8.打印, 打印
exercise35.分支和函數(shù)
exercise26. 恭喜你,可以進(jìn)行一次考試了
exercise33.while 循環(huán)
exercise29. IF 語(yǔ)句
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.訪問(wèn)列表元素
exercise11.提問(wèn)
exercise43.基本的面向?qū)ο蟮姆治龊驮O(shè)計(jì)
附錄 A-簡(jiǎn)介
附錄 A-練習(xí) 8:目錄切換(pushd, popd)
來(lái)自老程序員的建議
exercise27. 記住邏輯
exercise5.更多的變量和打印
exercise7.更多的打?。ㄝ敵觯?/span>
附錄 A-練習(xí) 13:輸出文件 (cat)
exercise39.字典,可愛(ài)的字典

exercise1.第一個(gè)程序

Warning: 如果你沒(méi)有做練習(xí) 0,說(shuō)明你沒(méi)有用正確的辦法使用本書(shū)。你需要仔細(xì)閱讀我書(shū)中提到的每一點(diǎn)。比如,你有沒(méi)有打算用 Python3 來(lái)完成書(shū)中的習(xí)題?我在練習(xí) 0 中說(shuō)過(guò)不要使用 Python3;你是不是打算使用什么 IDE 來(lái)編輯代碼?我同樣說(shuō)過(guò)你現(xiàn)在不需要這些,你只需要一個(gè)文本編輯器就夠了。如果你沒(méi)有閱讀練習(xí) 0 的內(nèi)容,請(qǐng)回過(guò)頭重新閱讀一下。

你應(yīng)該在練習(xí) 0 中花了不少的時(shí)間,學(xué)會(huì)了如何安裝文本編輯器、運(yùn)行文本編輯器、以及如何運(yùn)行命令行終端,而且你已經(jīng)花時(shí)間熟悉了這些工具。請(qǐng)不要跳過(guò)前一個(gè)練習(xí)的內(nèi)容直接進(jìn)行下面的內(nèi)容,這也是本書(shū)唯一的一次這樣的警示。

將下面的內(nèi)容寫到一個(gè)文件中,取名為 ex1.py。注意這個(gè)命名方式,Python 文件最好以.py 結(jié)尾。

print "Hello World!"
print "Hello Again"
print "I like typing this."
print "This is fun."
print 'Yay! Printing.'
print "I'd much rather you 'not'."
print 'I "said" do not touch this.'

如果你使用的是 Mac OSX 系統(tǒng),你看到的應(yīng)該是下面的樣子: mac osx ex1

http://wiki.jikexueyuan.com/project/learn-python-hard-way/images/1.jpg" alt="" />

如果你在 windows 上使用的 Notepad++編輯器,你看到的應(yīng)該是下圖的樣子:

http://wiki.jikexueyuan.com/project/learn-python-hard-way/images/2.jpg" alt="" />

如果你的編輯器跟這些圖都不太一樣,也沒(méi)關(guān)系,是比較相似的就是正確的。當(dāng)你創(chuàng)建文件的時(shí)候,注意以下幾點(diǎn):

1.不需要輸入上面內(nèi)容最左側(cè)的行號(hào),他們的作用是我可以在跟大家討論某一行代碼的時(shí)候,可以跟大家說(shuō),“請(qǐng)看第幾行”。你不需要把行號(hào)輸入到 Python 的腳本中。 2.我在 ex1.py 的每一行開(kāi)始都用到了 print,他們看起來(lái)是一模一樣的。每一個(gè)字符在腳本中都有它自己的角色,顏色并不重要,重要的是你輸入的是正確的。

然后在命令行終端通過(guò)輸入以下內(nèi)容來(lái)運(yùn)行這段代碼: python ex1.py

如果你輸入正確的話,你應(yīng)該看到和下面圖片一樣的內(nèi)容。如果不一樣,那就是你寫錯(cuò)了什么。不是計(jì)算機(jī)出錯(cuò)了,計(jì)算機(jī)沒(méi)錯(cuò)。

你應(yīng)該看到的輸出

在 Mac OSX 的終端中,你會(huì)看到:

http://wiki.jikexueyuan.com/project/learn-python-hard-way/images/3.jpg" alt="" />

在 windows 的終端中,你會(huì)看到:

http://wiki.jikexueyuan.com/project/learn-python-hard-way/images/4.jpg" alt="" />

在 python ex1.py 命令之前,你可能會(huì)看到不同的計(jì)算機(jī)或目錄名字,這不是問(wèn)題,重點(diǎn)是你輸入這個(gè)命令后,能看到和我的輸出一樣的結(jié)果。

如果你遇到了類似下面的錯(cuò)誤:

$ python ex/ex1.py
  File "ex/ex1.py", line 3
    print "I like typing this.
                             ^
SyntaxError: EOL while scanning string literal

你能看懂這些錯(cuò)誤信息是很重要的,因?yàn)橹竽憧赡軙?huì)犯更多的錯(cuò)誤。即使是我,也犯過(guò)很多的錯(cuò)誤。下面讓我們逐行的分析報(bào)錯(cuò)信息:

1.首先我們?cè)诿钚薪K端輸入命令來(lái)運(yùn)行 ex1.py 腳本。 2.Python 告訴我們 ex1.py 文件的第 3 行有一個(gè)錯(cuò)誤。 3.然后這一行的內(nèi)容被打印了出來(lái)。 4.然后 Python 打印出一個(gè)^(井號(hào),caret) 符號(hào),用來(lái)指示出錯(cuò)的位置。 注意到少了一個(gè)"(雙引號(hào),double-quote) 符號(hào)了嗎? 5.最后,它打印出了一個(gè)“語(yǔ)法錯(cuò)誤(SyntaxError)”告訴你究竟是什么樣的錯(cuò)誤。通常這些錯(cuò)誤信息都比較難懂,不過(guò)你可以把錯(cuò)誤信息復(fù)制到搜索引擎里,然后你就能看到別人也遇到過(guò)這樣的錯(cuò)誤,也許你還能在網(wǎng)上找到如何解決這個(gè)問(wèn)題。

Warning: 如果你來(lái)自另外一個(gè)國(guó)家,而且你看到關(guān)于 ASCII 編碼的錯(cuò)誤,那就在你的 python 腳本的最上面加入這一行:# -- coding: utf-8 -- 這樣你就在腳本中使用了 unicode UTF-8 編碼,這些錯(cuò)誤就不會(huì)出現(xiàn)了。

附加題

你還有 附加題 需要完成。加分習(xí)題里邊的內(nèi)容是供你嘗試的。如果你覺(jué)得做不出來(lái),你可以暫時(shí)跳過(guò),過(guò)段時(shí)間再回來(lái)做。

1.讓你的腳本多打印一行; 2.讓你的腳本只打印一行; 3.在某行的起始位置放一個(gè)#(#)符號(hào)。它的作用是什么?自己研究一下。

從現(xiàn)在開(kāi)始,如果我們沒(méi)有遇到與這個(gè)習(xí)題不同的練習(xí),我不會(huì)再逐個(gè)解釋這些習(xí)題是怎么運(yùn)行的。

NOTE: #號(hào)有很多的英文名字,例如:octothorpe(八角帽),pound(英鎊符), hash(電話的#鍵), mesh(網(wǎng))等。

常見(jiàn)問(wèn)題

下面是一些學(xué)生在做習(xí)題的時(shí)候提出的一些真實(shí)問(wèn)題。

Q:我可以使用 IDE 嗎?

不可以,你應(yīng)該像我一樣使用終端,如果你不知道怎么使用終端的話,你可以閱讀附錄 A 中的命令行速成教程。

Q:如何在我的編輯器里顯示不同顏色?

先把你的文件保存為.py 結(jié)尾的文件,比如 ex1.py,之后你再編輯的時(shí)候,就會(huì)有顏色區(qū)別了。

Q:我執(zhí)行腳本的時(shí)候,遇到一個(gè) SyntaxError: invalid syntax 報(bào)錯(cuò)

你可能想運(yùn)行 Python,可是你多打了一次 Python,重啟你的終端程序,并用正確的方法輸入命令 python ex1.py.

Q:我遇到報(bào)錯(cuò) can't open file 'ex1.py': [Errno 2] No such file or directory

你應(yīng)該進(jìn)入你文件保存的目錄下。確保你執(zhí)行了 cd 命令已進(jìn)入文件目錄。比如,你的文件保存在目錄 lpthw/ex1.py 下,那你應(yīng)當(dāng)在執(zhí)行 python ex1.py 之前先執(zhí)行 cd lpthw/。如果不明白我說(shuō)的什么意思,請(qǐng)先通讀附錄 A。

Q:在我的文件中,如何顯示我自己國(guó)家的文字?

在你文件的第一行輸入# -- coding: utf-8 --。

Q:我的文件沒(méi)有運(yùn)行;我的文件運(yùn)行后沒(méi)有輸出

請(qǐng)逐字逐句的檢查你的代碼文件,你應(yīng)該輸入 print "Hello World!"而不只 是"Hello World!",檢查你的文件,是不是沒(méi)有 print,請(qǐng)保證你的文件和我的一模一樣。