1. 程式人生 > >Python 基礎關於編碼

Python 基礎關於編碼

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 基礎關於編碼