Python 中,要想知道一個字符串有多少個字符(獲得字符串長度),或者一個字符串占用多少個字節,可以使用 len 函數。
len 函數的基本語法格式為:
len(string)
其中 string 用於指定要進行長度統計的字符串。
例如,定義一個字符串,內容為“http://c.biancheng.net”,然後用 len() 函數計算該字符串的長度,執行代碼如下:
>>> a='http://c.biancheng.net'
>>> len(a)
22
在實際開發中,除了常常要獲取字符串的長度外,有時還要獲取字符串的字節數。
在 Python 中,不同的字符所占的字節數不同,數字、英文字母、小數點、下劃線以及空格,各占一個字節,而一個漢字可能占 2~4 個字節,具體占多少個,取決於采用的編碼方式。例如,漢字在 GBK/GB2312 編碼中占用 2 個字節,而在 UTF-8 編碼中一般占用 3 個字節。
以 UTF-8 編碼為例,字符串“人生苦短,我用Python”所占用的字節數如下圖所示。
我們可以通過使用 encode() 方法,將字符串進行編碼後再獲取它的字節數。例如,采用 UTF-8 編碼方式,計算“人生苦短,我用Python”的字節數,可以執行如下代碼:
>>> str1 = "人生苦短,我用Python"
>>> len(str1.encode())
27
因為漢字加中文標點符號共 7 個,占 21 個字節,而英文字母和英文的標點符號占 6 個字節,一共占用 27 個字節。
同理,如果要獲取采用 GBK 編碼的字符串的長度,可以執行如下代碼:
>>> str1 = "人生苦短,我用Python"
>>> len(str1.encode('gbk'))
20