Warning: 如果你沒有做練習(xí) 0,說明你沒有用正確的辦法使用本書。你需要仔細(xì)閱讀我書中提到的每一點(diǎn)。比如,你有沒有打算用 Python3 來完成書中的習(xí)題?我在練習(xí) 0 中說過不要使用 Python3;你是不是打算使用什么 IDE 來編輯代碼?我同樣說過你現(xiàn)在不需要這些,你只需要一個文本編輯器就夠了。如果你沒有閱讀練習(xí) 0 的內(nèi)容,請回過頭重新閱讀一下。
你應(yīng)該在練習(xí) 0 中花了不少的時(shí)間,學(xué)會了如何安裝文本編輯器、運(yùn)行文本編輯器、以及如何運(yùn)行命令行終端,而且你已經(jīng)花時(shí)間熟悉了這些工具。請不要跳過前一個練習(xí)的內(nèi)容直接進(jìn)行下面的內(nèi)容,這也是本書唯一的一次這樣的警示。
將下面的內(nèi)容寫到一個文件中,取名為 ex1.py。注意這個命名方式,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="" />
如果你的編輯器跟這些圖都不太一樣,也沒關(guān)系,是比較相似的就是正確的。當(dāng)你創(chuàng)建文件的時(shí)候,注意以下幾點(diǎn):
1.不需要輸入上面內(nèi)容最左側(cè)的行號,他們的作用是我可以在跟大家討論某一行代碼的時(shí)候,可以跟大家說,“請看第幾行”。你不需要把行號輸入到 Python 的腳本中。 2.我在 ex1.py 的每一行開始都用到了 print,他們看起來是一模一樣的。每一個字符在腳本中都有它自己的角色,顏色并不重要,重要的是你輸入的是正確的。
然后在命令行終端通過輸入以下內(nèi)容來運(yùn)行這段代碼: python ex1.py
如果你輸入正確的話,你應(yīng)該看到和下面圖片一樣的內(nèi)容。如果不一樣,那就是你寫錯了什么。不是計(jì)算機(jī)出錯了,計(jì)算機(jī)沒錯。
在 Mac OSX 的終端中,你會看到:
http://wiki.jikexueyuan.com/project/learn-python-hard-way/images/3.jpg" alt="" />
在 windows 的終端中,你會看到:
http://wiki.jikexueyuan.com/project/learn-python-hard-way/images/4.jpg" alt="" />
在 python ex1.py 命令之前,你可能會看到不同的計(jì)算機(jī)或目錄名字,這不是問題,重點(diǎn)是你輸入這個命令后,能看到和我的輸出一樣的結(jié)果。
如果你遇到了類似下面的錯誤:
$ python ex/ex1.py
File "ex/ex1.py", line 3
print "I like typing this.
^
SyntaxError: EOL while scanning string literal
你能看懂這些錯誤信息是很重要的,因?yàn)橹竽憧赡軙父嗟腻e誤。即使是我,也犯過很多的錯誤。下面讓我們逐行的分析報(bào)錯信息:
1.首先我們在命令行終端輸入命令來運(yùn)行 ex1.py 腳本。 2.Python 告訴我們 ex1.py 文件的第 3 行有一個錯誤。 3.然后這一行的內(nèi)容被打印了出來。 4.然后 Python 打印出一個^(井號,caret) 符號,用來指示出錯的位置。 注意到少了一個"(雙引號,double-quote) 符號了嗎? 5.最后,它打印出了一個“語法錯誤(SyntaxError)”告訴你究竟是什么樣的錯誤。通常這些錯誤信息都比較難懂,不過你可以把錯誤信息復(fù)制到搜索引擎里,然后你就能看到別人也遇到過這樣的錯誤,也許你還能在網(wǎng)上找到如何解決這個問題。
Warning: 如果你來自另外一個國家,而且你看到關(guān)于 ASCII 編碼的錯誤,那就在你的 python 腳本的最上面加入這一行:# -- coding: utf-8 -- 這樣你就在腳本中使用了 unicode UTF-8 編碼,這些錯誤就不會出現(xiàn)了。
你還有 附加題 需要完成。加分習(xí)題里邊的內(nèi)容是供你嘗試的。如果你覺得做不出來,你可以暫時(shí)跳過,過段時(shí)間再回來做。
1.讓你的腳本多打印一行; 2.讓你的腳本只打印一行; 3.在某行的起始位置放一個#(#)符號。它的作用是什么?自己研究一下。
從現(xiàn)在開始,如果我們沒有遇到與這個習(xí)題不同的練習(xí),我不會再逐個解釋這些習(xí)題是怎么運(yùn)行的。
NOTE: #號有很多的英文名字,例如:octothorpe(八角帽),pound(英鎊符), hash(電話的#鍵), mesh(網(wǎng))等。
下面是一些學(xué)生在做習(xí)題的時(shí)候提出的一些真實(shí)問題。
不可以,你應(yīng)該像我一樣使用終端,如果你不知道怎么使用終端的話,你可以閱讀附錄 A 中的命令行速成教程。
先把你的文件保存為.py 結(jié)尾的文件,比如 ex1.py,之后你再編輯的時(shí)候,就會有顏色區(qū)別了。
你可能想運(yùn)行 Python,可是你多打了一次 Python,重啟你的終端程序,并用正確的方法輸入命令 python ex1.py.
你應(yīng)該進(jìn)入你文件保存的目錄下。確保你執(zhí)行了 cd 命令已進(jìn)入文件目錄。比如,你的文件保存在目錄 lpthw/ex1.py 下,那你應(yīng)當(dāng)在執(zhí)行 python ex1.py 之前先執(zhí)行 cd lpthw/。如果不明白我說的什么意思,請先通讀附錄 A。
在你文件的第一行輸入# -- coding: utf-8 --。
請逐字逐句的檢查你的代碼文件,你應(yīng)該輸入 print "Hello World!"而不只 是"Hello World!",檢查你的文件,是不是沒有 print,請保證你的文件和我的一模一樣。