練習 1 - 第一個程序 - Learn Python 3 The Hard Way

練習 1. 第一個程序

警告!如果你跳過了練習 0,那你就沒有按照這本書的正確學習方式來。另外,也不要使用 IDLE 或者 IDE。如果你跳過了練習 0,拐回去重新學習。

你可能已經花費了大量時間在練習 0 上,學習如何安裝一個文本編輯器,運行編輯器以及 Terminal,並且學習如何操作它們。如果你還沒有做這些,就不要繼續,否則你會後悔的。這種練習前的警告我再說最後一次:不要擅自跳過練習自己往前學

把下面的本文輸入到一個名為 ex1.py 單個文件中,python 文件一般以 .py為後綴。

ex1.py

1 print("Hello World!")2 print("Hello Again")3 print("I like typing this.")4 print("This is fun.")5 print(Yay! Printing.)6 print("Id much rather you not.")7 print(I "said" do not touch this.)

你的 Atom 文本編輯器應該看起來像這樣:

如果你的編輯器看起來不完全一樣也不用擔心,只要大體一致就行。

當你敲這個文件時,你得明白:

  1. 左邊這些數字不是我敲上去的,它印在書上是為了講解的時候方便說明。比如「看第 5 行...」之類,所以不要把行數敲進 Python 腳本里。
  2. 我輸出的結果跟我在練習 1 的 ex1.py 中讓你們輸入的內容是一模一樣的,而不是大致相同。所以每一個字元你都要嚴格按照我的要求來輸入,當然顏色無所謂。

在終端這樣輸入就可以運行你的 Python 文件:

python3.6 ex1.py

如果你都做對了,你就會看到和我一樣的結果,如果沒有,你肯定是哪裡出錯了。不,相信我,不是電腦的問題。

你應該看到

在 MacOS 的 Terminal 上你應該看到這樣的結果:

在 Windows 的 Powershell 上你應該看到這樣的結果:

你可能會在 python3.6 命令行前面看到不同的名字,這不重要,重要的是你輸入的命令要輸出跟我一樣的結果。

如果你出錯了你可能會看到這個:

$ python3.6 python/ex1.pyFile "python/ex1.py" , line 3 print (" I like typing this. ^SyntaxError : EOL while scanning string literal

能讀懂這些錯誤信息很重要,因為你接下來可能會出現很多這種錯誤,我也是。讓我們一行一行來看。

  1. 我們在 Terminal 運行 ex1.py 腳本。
  2. Python 告訴我們 ex1.py 文件的第三行出錯了。
  3. 它把第三行的代碼列印出來以便我們查看。
  4. 然後它放了一個 ^ (插入符號)來指出哪裡出了問題。注意到那個缺失的 "了嗎?
  5. 最後,它輸出「SyntaxError」,並告訴我們可能的錯誤信息。通常這些錯誤信息都比較隱晦,但是如果你用搜索引擎搜索以下,你就會發現別人也遇到過這樣的錯誤,然後你很可能就會找到問題的解決辦法。

課後練習

這個課後練習包括一些你應該嘗試去做的東西,如果你不會,可以先跳過,隨後再拐回來做。

對於這個練習,試試以下操作:

  1. 讓你的腳本再列印出一行。
  2. 讓你的腳本只列印一行。
  3. 在任一行的開頭放一個 # ,看看會發生什麼?試著弄明白這個符號的作用。

從現在開始,我不會解釋每個練習都是如何工作的,除非遇到特殊情況。

常見問題

以下是實際學習本節練習過程中學生們經常會問到的一些問題:

我能用 IDLE 嗎?不,你應該用 Terminal 或者 Powershell。如果你不知道怎麼用,就去學習附錄 A 的命令行速成教程。

我怎麼才能像你一樣編輯代碼時有顏色?先把你的文件另存為 .py ,比如 ex1.py 。然後你在輸入的時候就會有顏色了。

我在運行 ex1.py 時遇到了 SyntaxError:invalid syntax 提示。你很可能是已經運行了 Python,然後又輸了一次 python。關閉 Terminal,重新打開,然後只輸入 python3.6 ex1.py

我遇到了 cant open ex1.py: [Errno 2] No such file or directory. (「無法打開『ex1.py』:[錯誤號 2] 沒有該文件或目錄」)。你需要和你創建的文件在同一個目錄(文件夾)下。你要先使用 cd 命令切換到了那個目錄下。比如,如果你把你的文件保存在 lpthw/ex1.py,那你就應該在運行 python3.6 ex1.py 之前先用 cd lpthw/ 切換到 lpthw/ 目錄下。如果這段你看不懂,去學附錄 A 的命令行速成教程。

我的文件不運行,我只是返回了提示符,沒有任何輸出。 你很可能以為我讓你輸入 print("Hello World!")只是讓你輸 "Hello World!"。並不是,你要完整地、一字不差地把代碼敲出來。


推薦閱讀:

TAG:Python | Python入門 | Python3x |