2.1 Invoking the Interpreter :
在開始使用 Python 的指令互動式環境, 必須先 安裝 Python. 並根據你的 OS 將其安裝路徑設置於環境變數中, 讓你在 Console 鍵入 python 就可以使用 Interpreter (直譯器) 進入互動式環境 . 如果你是在 Linux, 你可以如下確認安裝路徑 :
如果你是 Windows like 的平台, 則可以使用下面命令將你的 Python 安裝路徑(假設是 C:\python32) 加到環境變數 path 中 :
如果安裝完 Python 且環境變數也設置完成, 在 Console 鍵入 "python3" 便可以進入指令互動式環境, 如果要退出就使用組合鍵 Control-D on Unix, Control-Z on Windows. 或是直接鍵入 quit() 並按下Enter鍵 也有同樣效果 :
因為這是 Console mode 的 IDE, 所以功能有限, 如果你想回到前一次輸入的內容可以使用 Ctl+P :
如果出現 beep 聲或是互動環境出現 ^p 說明那個版本或是環境下的互動環境不支援這個功能, 更多可以參考 Interactive Input Editing and History Substitution
如果你在 Console 鍵入 "python3 <檔案路徑>", 則 Python 會將該檔案當作 python 程式碼執行. 如果你不想進入指令互動環境而只是想執行簡單的一行指令, 則可以 :
因為 command 可能會包含 shell 的關鍵字, 所以建議使用 single quote 將 command 包含起來.
Python 提供許多有用的模組, 你也可以把它們當作 script 來執行 :
- Argument Passing
通常為了將我們的 script 做的彈性些, 我們會藉由從命令列讀入參數來動態改變原有 script 的設定或行為. 在 Python 中, 由命令列讀入的參數會以 string 的 list 存放在模組 sys 的變數 argv 中, 你可以讀取他們透過在 script 使用語法 "import sys". 這個代表輸入參數的串列長度至少為一, 當你在指令互動環境下沒有輸入任何的 script 或是參數時, sys.argv[0] 為空字串 ; 當你使用 -c 命令列參數, 則 sys.argv[0] 會被設為 '-c' ; 當你使用 -m 命令列參數, 則 sys.argv[0] 會被設為對應引入的模組名稱. 底下為簡單範例 :
執行結果 :
- Interactive Mode
如果直接在 Console 鍵入 "python3" 而沒有任何 script 或是使用 -c/-m 參數時會進入 指令互動環境. 就像 tty 一樣, 你可以在這鍵入命令並且互動環境會將結果顯示在 Console 中. 該互動環境會有 ">>>" 提示字符, 如果你是輸入一個函式, 則在輸入函式內容的提示符會是 "..." 說明依賴於前面的定義 (如函式 etc), 並且最後需要一個空白行說明該定義結束. 底下為簡單範例 :
2.2 The Interpreter and Its Environment
- Error Handling
底下為 Python 對 error handling 的說明 :
你可以在指令互動環境下使用 Control-C or DEL 來中止目前的輸入並回到 primary prompt. 而這樣的行為會引發 KeyboardInterrupt exception (可以被 try statement 處理).
- Executable Python Scripts
在 BSD’ish Unix 平台如果要讓你的 Python script 可以直接執行, 請在你的 script 的頭部加入下面一行 (根據實際你的安裝目錄路徑) :
在 Python 中使用 "#" 字元來當作註解, 但是 "#!" 為特殊用途, 說明執行時要以哪個執行檔來開啟你的 script. 最後為了讓你的 script 有執行的權限, 你還須使用 chmod 命令如下 (假設你的 script 檔名為 myscript.py) :
在 Windows 就沒有這個困擾, 他會將副檔名與對應的執行檔相關起來, 所以只要你的 script 是 .py 結尾, Windows 就會知道它是 Python 的 script 並執行它.
- Source Code Encoding
預設 Python 使用 UTF-8 來讀取你的 script, 但是你也可以使用特定編碼. 藉由特殊註解符號如下 :
至於 Python 支援的編碼可以在 Python Library Reference 找到, 底下為使用 Windows-1252 編碼範例 Declaration :
而這個編碼定義必須位於你的 script 的前兩行才會生效.
- The Interactive Startup File
當你在使用 Python 指令互訂環境時可能會有常使用或是需要引入的模組, 你希望在開啟互動環境前就能先執行. 這時你可以使用一個環境變數 PYTHONSTARTUP 紀錄你欲執行的 script 的路徑, 這樣每次在開啟指令互動環境前就會先執行該檔案, 並且該檔案的名稱空間就是互動環境的空間, 所以任何在該檔案定義的方法變數, 在指令互動環境都可以使用. (有點類似 Unix shell 的 .profile)
底下為官方對該變數使用說明 :
由上可知該變數只使用在 interactive session 中, 如果你希望在你的 script 也能在執行前先執行變數 PYTHONSTARTUP 指定的 start-up script, 則你可以在你的 script 的最前面加入下面代碼 :
- import os
- filename = os.environ.get('PYTHONSTARTUP')
- if filename and os.path.isfile(filename):
- exec(open(filename).read())
Python 提供兩個方法讓你可以客製化載入的 modules, 分別是 sitecustomize 與 usercustomize. 在使用之前我們必須先找到它對應的路徑(底下代碼為找到 usercustomize) :
現在你可以建立一個檔案 "usercustomize.py" 到上面指定路徑下, 並在該檔案引入你想引入的模組. 它將會影響每次你呼叫 Python 除非你使用參數 -s 來 disable 這個自動引入. 同樣的 sitecustomize 也是同樣的作法, 但是它通常是由 administrator 進行 global site-packages 的設定使用, 並且它會在 usercustomize 之前先引入. 更多可以參考線上文件有關 site module 的說明.
補充說明 :
* [Python 學習筆記] 起步走 : 基本環境與互動 (指令互動環境)
沒有留言:
張貼留言