# 練習1.第一個程序
> **Warning:**如果你沒有做練習0,說明你沒有用正確的辦法使用本書。你需要仔細閱讀我書中提到的每一點。比如,你有沒有打算用Python3來完成書中的習題?我在練習0中說過不要使用Python3;你是不是打算使用什么IDE來編輯代碼?我同樣說過你現在不需要這些,你只需要一個文本編輯器就夠了。如果你沒有閱讀練習0的內容,請回過頭重新閱讀一下。
你應該在練習 0 中花了不少的時間,學會了如何安裝文本編輯器、運行文本編輯器、以及如何運行命令行終端,而且你已經花時間熟悉了這些工具。請不要跳過前一個練習的內容直接進行下面的內容,這也是本書唯一的一次這樣的警示。
將下面的內容寫到一個文件中,取名為`ex1.py`。注意這個命名方式,Python文件最好以`.py`結尾。
~~~
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系統,你看到的應該是下面的樣子:
如果你在windows上使用的Notepad++編輯器,你看到的應該是下圖的樣子:
如果你的編輯器跟這些圖都不太一樣,也沒關系,是比較相似的就是正確的。當你創建文件的時候,注意以下幾點:
> 1.不需要輸入上面內容最左側的行號,他們的作用是我可以在跟大家討論某一行代碼的時候,可以跟大家說,“請看第幾行”。你不需要把行號輸入到Python的腳本中。2.我在`ex1.py`的每一行開始都用到了print,他們看起來是一模一樣的。每一個字符在腳本中都有它自己的角色,顏色并不重要,重要的是你輸入的是正確的。
然后在命令行終端通過輸入以下內容來運行這段代碼:`python ex1.py`
如果你輸入正確的話,你應該看到和下面圖片一樣的內容。如果不一樣,那就是你寫錯了什么。不是計算機出錯了,計算機沒錯。
## 你應該看到的輸出
在Mac OSX的終端中,你會看到:
在windows的終端中,你會看到:
在`python ex1.py`命令之前,你可能會看到不同的計算機或目錄名字,這不是問題,重點是你輸入這個命令后,能看到和我的輸出一樣的結果。
如果你遇到了類似下面的錯誤:
~~~
$ python ex/ex1.py
File "ex/ex1.py", line 3
print "I like typing this.
^
SyntaxError: EOL while scanning string literal
~~~
你能看懂這些錯誤信息是很重要的,因為之后你可能會犯更多的錯誤。即使是我,也犯過很多的錯誤。下面讓我們逐行的分析報錯信息:
> 1.首先我們在命令行終端輸入命令來運行`ex1.py`腳本。2.Python告訴我們`ex1.py`文件的第3行有一個錯誤。3.然后這一行的內容被打印了出來。4.然后 Python 打印出一個`^`(井號,caret) 符號,用來指示出錯的位置。 注意到少了一個`"`(雙引號,double-quote) 符號了嗎?5.最后,它打印出了一個“語法錯誤(SyntaxError)”告訴你究竟是什么樣的錯誤。通常這些錯誤信息都比較難懂,不過你可以把錯誤信息復制到搜索引擎里,然后你就能看到別人也遇到過這樣的錯誤,也許你還能在網上找到如何解決這個問題。
> **Warning:**如果你來自另外一個國家,而且你看到關于 ASCII 編碼的錯誤,那就在你的 python 腳本的最上面加入這一行:`# -*- coding: utf-8 -*-`這樣你就在腳本中使用了`unicode UTF-8`編碼,這些錯誤就不會出現了。
## 附加題
你還有 **附加題** 需要完成。加分習題里邊的內容是供你嘗試的。如果你覺得做不出來,你可以暫時跳過,過段時間再回來做。
> 1.讓你的腳本多打印一行;2.讓你的腳本只打印一行;3.在某行的起始位置放一個`#`(#)符號。它的作用是什么?自己研究一下。
從現在開始,如果我們沒有遇到與這個習題不同的練習,我不會再逐個解釋這些習題是怎么運行的。
> **NOTE:**`#`號有很多的英文名字,例如:`octothorpe(八角帽)`,`pound(英鎊符)`, `hash(電話的#鍵)`, `mesh(網)`等。
## 常見問題
下面是一些學生在做習題的時候提出的一些真實問題。
### Q:我可以使用IDE嗎?
> 不可以,你應該像我一樣使用終端,如果你不知道怎么使用終端的話,你可以閱讀附錄A中的命令行速成教程。
### Q:如何在我的編輯器里顯示不同顏色?
> 先把你的文件保存為`.py`結尾的文件,比如`ex1.py`,之后你再編輯的時候,就會有顏色區別了。
### Q:我執行腳本的時候,遇到一個`SyntaxError: invalid syntax`報錯
> 你可能想運行Python,可是你多打了一次Python,重啟你的終端程序,并用正確的方法輸入命令`python ex1.py`.
### Q:我遇到報錯 can't open file 'ex1.py': [Errno 2] No such file or directory
> 你應該進入你文件保存的目錄下。確保你執行了`cd`命令已進入文件目錄。比如,你的文件保存在目錄`lpthw/ex1.py`下,那你應當在執行`python ex1.py` 之前先執行`cd lpthw/`。如果不明白我說的什么意思,請先通讀附錄A。
### Q:在我的文件中,如何顯示我自己國家的文字?
> 在你文件的第一行輸入`# -*- coding: utf-8 -*-`。
### Q:我的文件沒有運行;我的文件運行后沒有輸出
> 請逐字逐句的檢查你的代碼文件,你應該輸入`print "Hello World!"`而不只 是`"Hello World!"`,檢查你的文件,是不是沒有`print`,請保證你的文件和我的一模一樣。
- 序言
- 前言
- 簡介
- 0:安裝和準備
- 1:第一個程序
- 2:注釋和“#”井號
- 3:數字和數學計算
- 4:變量和命名
- 5:更多的變量和打印
- 6:字符串和文本
- 7:更多的打印(輸出)
- 8:打印, 打印
- 9:打印, 打印, 打印
- 10:那是什么?
- 11:提問
- 12:提示別人
- 13:參數, 解包, 變量
- 14:提示和傳遞
- 15:讀文件
- 16:讀寫文件
- 17:更多文件操作
- 18:命名, 變量, 代碼, 函數
- 19:函數和變量
- 20:函數和文件
- 21:函數的返回值
- 22:到目前為止你學到了什么?
- 23:閱讀代碼
- 24:更多的練習
- 25:更多更多的練習
- 26:恭喜你,可以進行一次考試了
- 27:記住邏輯
- 28:布爾表達式
- 29:IF 語句
- 30:Else 和 If
- 31:做出決定
- 32:循環和列表
- 33:while循環
- 34:訪問列表元素
- 35:分支和函數
- 36:設計和調試
- 37:復習符號
- 38:列表操作
- 39:字典,可愛的字典
- 40:模塊, 類和對象
- 41:學會說面向對象
- 42:對象、類、以及從屬關系
- 43:基本的面向對象的分析和設計
- 44:繼承Vs.包含
- 45:你來制作一個游戲
- 46:項目骨架
- 47:自動化測試
- 48:更復雜的用戶輸入
- 49:寫代碼語句
- 50:你的第一個網站
- 51:從瀏覽器獲取輸入
- 52:開始你的web游戲
- 來自老程序員的建議
- 下一步
- 附錄A:命令行教程
- 簡介
- 安裝和準備
- 路徑, 文件夾, 名錄 (pwd)
- 如果你迷路了
- 創建一個路徑 (mkdir)
- 改變當前路徑 (cd)
- 列出當前路徑 (ls)
- 刪除路徑 (rmdir)
- 目錄切換(pushd, popd)
- 生成一個空文件(Touch, New-Item)
- 復制文件 (cp)
- 移動文件 (mv)
- 查看文件 (less, MORE)
- 輸出文件 (cat)
- 刪除文件 (rm)
- 退出命令行 (exit)
- 下一步