有關Python 解釋器說明介紹
Python 解釋器包括兩個主要的子系統:一個是表達式解析器,負責處理數字表達式;另一個是解釋器,負責程序的實際執行,不是只能解析孤立的表達式。
用上一節介紹的方法就可以實現原始的用戶輸入/輸出.下邊的函數從標準輸入讀取一行文本,然后返回這行文本: 內建函數raw_input(prompt)也可以從stdin中讀取并保存內容: 最后要說的是。
鍵盤中斷(通常是Ctrl+C)會引發KeyboardInterrupt異常,該異常可以被異常處理語句捕獲并處理。只要需要,sys.stdout、 sys.stdin及sys.stderr的值均可以使用其它文件對象進行替換。這樣 print 語句和 raw_input 函數都會使用新值。
在解釋器啟動時,sys.stdout, sys.stdin及sys.stderr可以分別使用sys.stdout, sys.stdin, 和 sys.stderr這三個名字來訪問。注意某些場合 sys.stdout, sys.stdin及sys.stderr的默認值會被改變(通常程序運行在一個集成環境時).例如,當在IDLE下運行Python代碼時。
sys.stdin會被開發環境提供的一個行為類似文件對象的對象代替.在這樣的場合,低層方法如read(),seek()可能會失效。在系統內部,Unicode 字符串被表示為一個16位整數序列,8-bit 字符串則是一個字節序列, 絕大多數字符串操作被擴展為能夠處理更寬范圍的字符值。
只要 Unicode 字符串被轉換為字節流,就必然會產生一系列問題(需要解決)。首先,要考慮現有軟件的兼容性, 對那些僅支持 ASCII或其它 8-bit的軟件來說,將 Unicode字符串轉化為 ASCII字符串是較好的方法。
其次, 16-bit 字符占用兩個字節,字節順序問題雖然比較無聊但必須考慮。對一個Unicode字符 U+HHLL 來說, 小端法編碼方案將低位字節放在前面。即 LL HH;大端法編碼方案則將高位字節放在前面,即 HH LL. 就因為這么點問題, 不指定編碼方案,你就無法將原始 Unicode 數據寫入文件.
要解決這些問題, 只能根據特定的編碼規則將 Unicode 字符串進行客觀表示。這些規則定義了如何將 Unicode 字符表示為字節序列。在第四章, 針對 unicode()及 s.encode() 首先介紹了編碼規則。舉例來說:
- a = u"M\u00fcller"
- b = "Hello World"
- c = a.encode('utf-8') # Convert a to a UTF-8 string
- d = unicode(b) # Convert b to a Unicode string
- 復制代碼
【編輯推薦】