站長在線python精講:在Python中使用len()函數(shù)計算字符串的長度詳解
導(dǎo)讀:歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)Python知識,本文學(xué)習(xí)的是《在Python中使用len()函數(shù)計算字符串的長度詳解》。本知識點主要內(nèi)容有:在Python中使用len()函數(shù)計算字符串在UTF-8編碼中的長度和使用len()函數(shù)計算字符串在GBK編碼中的長度。
永久美國免備案虛擬主機1元1天,15元1月,100元1年,1000元永久
站長在線旗下答案網(wǎng)站,全站所有題目,免費查看答案和答案解析
歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)python知識,本文學(xué)習(xí)的是《在Python中使用len()函數(shù)計算字符串的長度詳解》。本知識點主要內(nèi)容有:在Python中使用len()函數(shù)計算字符串在UTF-8編碼中的長度和使用len()函數(shù)計算字符串在GBK編碼中的長度。
在Python中,不同的字符采用的編碼不同,所占用的字節(jié)數(shù)也是不同的。要想計算字符串的長度,先了解字符所占用的字節(jié)數(shù)。
我們在字符串的編碼轉(zhuǎn)換中學(xué)過,漢字在GBK/GB2312中一個中文字符,占兩個字節(jié)。在UTF-8中一般占3個字節(jié)(或者4個字節(jié))。
在Python中,提供了len()函數(shù)計算字符串的長度,其語法如下:
len(string)
其中,string用于指定要進行長度統(tǒng)計的字符串。
例如,定義一個字符串,內(nèi)容為“Python是當(dāng)下最熱門的編程語言”,然后應(yīng)用len()函數(shù)計算該字符串的長度,代碼如下:
str = 'Python是當(dāng)下最熱門的編程語言' # 定義字符串
a = len(str) # 計算字符串的長度
print(a) # 輸出字符串的長度
運行結(jié)果為:
17
>>>
從上面的結(jié)果可以看出,在默認(rèn)的情況下,通過len()函數(shù)計算字符串的長度時,不區(qū)分英文,數(shù)字和漢字,所有的字符都認(rèn)為是一個字符。
但是在實際開發(fā)中,需要獲取字符串實際所占用的字節(jié)數(shù)。如果采用gbk或者gb2312編碼,則一個漢字占用兩個字節(jié);采用utf-8編碼,則一個漢字占用3個字節(jié)。這時,我們可以通過encode()方法進行編碼后再進行獲取。
1、采用默認(rèn)編碼UTF-8編碼時,獲取字符串“Python是當(dāng)下最熱門的編程語言”的長度,代碼為:
str = 'Python是當(dāng)下最熱門的編程語言' # 定義字符串
a = len(str.encode('utf-8')) # 計算utf-8編碼的字符串的長度
print(a) # 輸出字符串的長度
運行結(jié)果為:
39
>>>
為什么是39呢?是因為在utf-8的編碼中,一個漢字占3個字節(jié),一共11個漢字就是33個字節(jié),加上6個英文字母占6個字節(jié),就是39個字節(jié)了。
下面我們在來使用GBK編碼的長度時多少?
2、用默認(rèn)編碼GBK編碼時,獲取字符串“Python是當(dāng)下最熱門的編程語言”的長度,代碼為:
str = 'Python是當(dāng)下最熱門的編程語言' # 定義字符串
a = len(str.encode('gbk')) # 計算gbk編碼的字符串的長度
print(a) # 輸出字符串的長度
運行結(jié)果為:
28
>>>
為什么是28呢?因為在GBK的編碼中,一個漢字占2個字節(jié),一共11個漢字占22個字節(jié),加上6個英文字母占6個字節(jié),就是28個字節(jié)了。
站長在線提醒您,因為UTF-8編碼是Python3中的默認(rèn)編碼,在進行計算編碼時,可以不用輸入。即下面代碼也是對的:
str = 'Python是當(dāng)下最熱門的編程語言' # 定義字符串
a = len(str.encode()) # 計算默認(rèn)編碼utf-8編碼的字符串的長度
print(a) # 輸出字符串的長度
運行結(jié)果為:
39
>>>
到此為止,《在Python中使用len()函數(shù)計算字符串的長度詳解》就講解完畢了,我們下一個知識點為《在Python中截取字符串(切片)詳解》。
本文地址:http://003188.cn/pythonjisuanzifuchuandezhangdu.html
阿里云虛擬主機1G空間,120元一年
香港、美國虛擬主機100元一年,1000元永久
騰訊云雙十一0.4折起,2核8G5M三年僅700元,2核4G8M三年僅198元
猜你喜歡