Python 基礎關於編碼
阿新 • • 發佈:2017-10-26
print lex ... 宋體 字典 clas 中文 unicode 亞洲
一、編碼的種類:
1 acsic碼 基本不用 不同編碼之間互用會產生亂碼,
2unicode A 字母 4個字節 00000000 00000000 00100100 01000000
中 文 4個字節 00000000 00000000 00100100 00000000
3utf-8 中文 A 字母 1個字節 00000001
歐 洲 2個字節 00000000 00000000 00100100 00000000
亞洲 中文 3個字節 00000000 00000000 00000000 00100100 00000000
4 gbk A 字母 2個字節 00000000 00001000
中文 亞洲 2個字節 00100100 00000000
二: 字節(bytes)和 字符串 (str)的區別:
bytes :表現形式: s = ‘Q’ b1 = s.encode (‘utf-8‘) print (b1) b1 = b‘Q‘
內部存儲是(utf-8 ,gbk ,gb232等)
s1 = ‘曉梅‘
b11 = s1.encode(‘utf-8‘)
表現形式: s = b‘\xe6\x99\x93\xe6\xa2\x85‘ (utf-8,gbk,gb2312.....)010101
0000 1000 0000 0000 0000 0001 0000 1001 0000 0000 0000 0001
註意:在utf-8 的情況下b 後邊有6個 (e6 99 等) 說名 曉梅 是中文 utf-8 是兩個字6個字節
s2 = ‘曉梅‘
b22 = s1.encode(‘gbk‘)
print(b22)
b‘\xcf\xfe\xc3\xb7‘
表現形式: s = b‘\xcf\xfe\xc3\xb7‘ (utf-8,gbk,gb2312.....)010101
0000 1000 0000 0000 0000 0001 0000 1001
註意:在gbk 的情況下b 後邊有4個 (cf xf 等) 說名 曉梅 是中文 ggbk 是兩個字4個字節
str 的表現形式 s = "wangyan‘ 內部存儲是(Unicode)
三 id(內存地址) ==是比較的值 is是內存抵制的比較
列表 字典 元祖 set 內存地址都是不一樣的
於int 小數據池
int : 範圍:-5---256 創建的相同的數字,都指向同一個內存地址。空格除外
str : 字符串一般都指向想同的內存地址,空格除外。
s = ‘alex‘
print (s,type(s))
print(s,type(s),id(s)) alex <class ‘str‘> 51749664
如果s1 = s2 = ‘wangyan‘
print(s1 = s2)
print(s1 is s2)
於int 小數據池
int : 範圍:-5---256 創建的相同的數字,都指向同一個內存地址。
Python 基礎關於編碼