這裏主要描述如下三種編碼方式:python
(1)ASCII編碼
(2)unicodespa
(3)uft-8code
(4)gbkblog
ASCII 碼內存
在計算機內部,全部的信息最終都是一個二進制值。每個二進制位(bit)有0和1兩種狀態,所以 8 個 二進制位就能夠組合成 256 種狀態,這被稱爲一個字節(byte)。也就是說,一個字節一共能夠用來表示 256種不一樣的狀態,每個狀態對應一個符號,就是 256 個符號,從 00000000 到 11111111utf-8
美國定製了一套字符編碼,對英語字符與二進制位之間的關係,作了統一規定。這被稱爲 ASCII 碼,一直沿用至今。unicode
一個字符用 1 個字節表示 1 byte = 8 bitit
ASCII 碼只包含字母和英文中的特殊符號,不包括漢字;字符編碼
unicode (萬國碼)
世界上存在不少種不一樣的編碼,同一個二進制數字能夠被解釋成不一樣的符號。所以,想要打開一個文本文件,就必須知道它的編碼方式,不然用錯誤的編碼方式打開就會出現亂碼。若是有一種編碼,將世界上全部的符號都歸入其中。每個符號都給予一個獨一無二的編碼,那麼亂碼問題就會消失。這就是 unicode 萬國碼的由來,這是一種全部符號的編碼。
字母:
一個字母等於 4 個 byte = 32 bit
漢字:
一個字母等於 4 個 byte = 32 bit
1. unicode 的問題
須要注意的是, unicode 只是一個字符集,它規定了符號的二進制代碼,卻沒有規定這個二進制代碼應該如何存儲。
(1)如何才能區分 unicode 和 ASCII ? 計算機怎麼知道三個字節表示一個符號,而不是分別表示三個符號呢?
(2)英文在 ASCII 碼中,只須要一個字節表示就夠了,若是採用 unicode 統一規定,每一個符號用三個或四個字符表示,這對於存儲來講是極大的浪費,文本文件的大小胡所以大出二三倍。
UTF-8
互聯網的普及,強烈要求出現一種統一的編碼方式。utf-8 就是在互聯網上使用最廣的一種 unicode 的實現方式。
字母:
一個字母等於 2 byte = 8 bit
漢字:
一箇中文等於 3 byte = 24 bit
GBK
包含所有中文字符,utf-8則包含全世界全部國家須要用到的字符;
字母:
一個字母 1 byte = 8 bit
漢字:
一個漢字 2 byte = 16 bit
1. = 賦值
例子:
s1 = 'hkey' s2 = 'xiaofei'
2. == 比較值是否相等
print( 1 == 2) # 執行結果: # False
3. is 比較內存地址
s1 = 6 s2 = 6 print(s1 is s2) # 執行結果: # True s11 = 'adfadsasdfasdff' s22 = 'adfadsasdfasdff1' print(s11 is s22) # 執行結果: # False