Python 字串

dicksonjyl560101發表於2017-12-26

所有用過 Python (2&3)的人應該都看過下面兩行錯誤資訊:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 0-1: invalid continuation byte

這就是 Python 界的”錕斤拷”!

今天和接下來幾期的內容將主要關注 Python 中的字串(str)、位元組(bytes)及兩者之間的相互轉換(encode/decode)。也許不能讓你突然間解決所有亂碼問題,但希望可以幫助你迅速找到問題所在。

定義

Python 中對字串的定義如下:

Textual data in Python is handled with str objects, or strings. Strings are immutable sequences of Unicode code points.

Python 3.5 中字串是由一系列 Unicode 碼位(code point)所組成的不可變序列

不可變是指無法對字串本身進行更改操作:

序列(sequence)則是指字串繼承序列型別(list/tuple/range)的通用操作:

至於 Unicode 暫時可以看作一張非常大的地圖,這張地圖裡面記錄了世界上所有的符號,而碼位則是每個符號所對應的座標(具體內容將在後面的幾期介紹)。

常用操作

  • len:字串長度;
  • split & join
  • find & index
  • strip
  • upper & lower & swapcase & title & capitalize
  • endswith & startswith & is*
  • zfill

format / encode

格式化輸出 format 是非常有用的工具,將會單獨進行介紹;encode 會在 bytes-decode-Unicode-encode-bytes 中詳細介紹。

打賞支援我寫出更多好文章,謝謝!

打賞作者

打賞支援我寫出更多好文章,謝謝!

Python 字串

相關文章