close

第七章、向專家一樣處理資料

  • 文字字串
  • Unicode為每個字元提供一個獨一無二的符號,無論平台、程式、語言是什麼
    • 最原始的ASCII只使用7位元,但只包含一些基本的字母與符號。
    • 延伸至今還有許多種格式,但就算如此還是不夠,尤其是使用到非歐語系的語言。
    • Unicode是目前仍在使用的國際標準,定義全世界所有語言的字元,加上數學與其他領域的符號
  • Python 3 Unicode字元
    • \u 後面加上四個十六進位數字,代表Unicode的256個基礎多語言plane內的字元
    • \U 後面加上阿個時溜進為字元,來定義較高plane的字元需要更多位元,最左邊的字元必須是0
    • Python的unicodedata有一些函式可以做雙向轉換:
      • lookup()接收一個不分大小寫的名稱,回傳一個Unicode字元
      • name()接收一個Unicode字元,回傳一個大寫名稱

87.PNG

88.PNG

  • 以UTF-8編碼與解碼
    • 編碼
      • encode(),可以將字串編碼成byte,引數為編碼名稱
        • ---------------------------------------------------------------------------
  1. 'ascii'                      標準的七位元ASCII
  2. 'utf-8'                     八位元,可變長度編碼(經常使用)
  3. 'latin-1'                  也稱為 ISO 8859-1
  4. 'cp-1252'               一般的 Windows 編碼
  5. 'unicode-escape'   Python Unicode常值格式

                       ---------------------------------------------------------------------------

                                 可以將任何東西編碼成UTF-8

89.PNG

90.PNG

 

  •  
    • 解碼
      • 將byte字解碼成Unicode字串。當從外部取得資料時,它會被解碼成byte字串,而棘手的地方就是要知道它是使用哪一種編碼,才得以反推回去取得Unicode字串

91.PNG

※解碼後編回utf-8

92.PNG

※使用ascii編碼會出現例外,因為byte值0xc3在ASCII中是非法的,而其餘編碼則顯示錯誤

 

 

 

 

 

  • 格式
  • 以%來使用舊方式

舊的字串格式化格式是 string % data 。在字串裡面有插值序列。

轉換類型
%s 字串
%d 十進位整數
%x 十六進位整數
%o 八進位整數
%f 十進位浮點數
%e 指數浮點數
%g 十進位或指數浮點數
%% 字面 %

 

 

 

 

 

 

 

下面為一些範例:

93.PNG

※整數與浮點數

94.PNG

※整數與常值%

95.PNG

※一些字串與整數插值的混和

接下來我們再做更多的變化:

96.PNG

  • 使用{}與format的新格式化方式

仍然支援舊的格式化方式,但如果你用的是Python 3 建議你使用新的方式格式化

以下為範例:

97.PNG

98.PNG

  •  
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 ivankao 的頭像
    ivankao

    IvanKao的部落格

    ivankao 發表在 痞客邦 留言(0) 人氣()