我是"學海無涯自學不惜!",關注我,共同學習簡單易懂的Python編程。
0基礎學python(72)
在學習計算字符串的長度之前,需要先了解一個概念:字符編碼。
字符編碼(Character encoding),即為字集碼,就是把字符集中的字符編碼為指定集合中某一對象,用來以字節為單位實現字符在計算機中的存儲,和便於通過通信網絡的傳遞字符。
我們現在常用的字符編碼有這幾種:
1、GB2312:就是按照我國的國家標準第2312條編碼,其中是不包含繁體字的;
2、GBK:2312標準編碼的升級版,其中有繁體字,並且包含亞洲所有的字符,屬於亞洲頭號編碼。
3、unicode:通用編碼,基本上把地球上所有的符號都納入其中了,現規模超過100多萬字符,囊括了幾乎地球上所有語言。
4、UTF-8:unicode編碼的升級版,現階段全球應用最廣泛的編碼。
常用的英文字母、數字、一個空格等,在編碼中所佔的都是一個字節,但是不同的編碼,中文漢字所佔的字節是不同的。
簡單知道一下字符編碼是什麼以後,看一個例子,瞭解一下同一句話在不同的字符編碼中佔多少個字節。
就以Python中最常用的宣傳語:"人生苦短,我用Python!"為例,看看這句話分別在UTF-8和GBK中佔多少個字節,詳見下圖:
可以看到,在UTF-8中,每一個漢字和漢字全角的標點符號都佔三個字節,英文和英文半角的標點符號佔一個字節;在GBK中,每個漢字和和漢字全角的標點符號都佔兩個字節,英文和英文半角的標點符號佔一個字節。
在Python中,提供了一個len()函數來計算字符串的長度,它的語法格式是這樣的:
len(string)
而且它的用法非常的簡單,還是以"人生苦短,我用Python!"為例,來計算一下這個字符串的長度,詳見下圖:
但是計算出來的長度,和上面說的UTF-8和GBK編碼的長度完全不符,這是為什麼呢?因為在Python中,直接使用len()計算長度的時候,就是計算它由多少個字符組成,上面這句話包括標點符號一共14個字符,它的長度就是14。
那麼想知道這句話在UTF-8或GBK編碼下的字節長度,就要使用encode()方法做出判斷,詳見下圖:
結果,通過encode()判斷後,使用UTF-8編碼的話這個字符串的長度為28個字節,使用GBK編碼則長度為21個字節,使用GB2312編碼長度也是21個字節。
注意,encode()判斷時小括號為空,則默認是UTF-8編碼。
實際上,使用len()方法獲取長度的應用,在前面學習的時候已經接觸過,有興趣的朋友,可以關注我後往前翻著看看,結合前後的內容,可以將所學的內容稍微鞏固一下,是吧。
感謝大家一直以來的支持,明天奉上的是"截取字符串"的內容,敬請拭目以待。
為自己加油,我是"學海無涯自學不惜!"