1. 程式人生 > >Python:基礎數據類型:bytes

Python:基礎數據類型:bytes

AD 直接 pytho int ltib XA utf 長度 str

Python:基礎數據類型---bytes

由於Python的字符串類型是str,在內存中以Unicode表示,一個字符對應若幹個字節。如果要在網絡上傳輸,或者保存到磁盤上,就需要把str變為以字節為單位的bytes

Python對bytes類型的數據用帶b前綴的單引號或雙引號表示:

b1 = balex
print(b1,type(b1)

balex <class bytes>

要註意區分‘ABC‘b‘ABC‘,前者是str,後者雖然內容顯示得和前者一樣,但bytes的每個字符都只占用一個字節。

字符串與bytes相互轉換:

s1 = alex
#
str ---> bytes encode 編碼 b1 = s1.encode(utf-8) print(b1) # bytes---> str decode 解碼 s2 = b1.decode(utf-8) print(s2) balex alex

指定編碼轉換:

s1 = alex
b2 = s1.encode(gbk)
s3 = b2.decode(gbk)
print(b2)
print(s3)

balex
alex

中文轉換時,不同的編碼不能直接轉換報錯如下

s4 = 中國
b4 = s4.encode(utf-8
) s5 = b4.decode(gbk) print(s5) UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xad in position 2: illegal multibyte sequence

s4 = 中國
b4 = s4.encode(utf-8) # utf-8 bytes
print(b4)
b6 = b4.decode(utf-8) # utf-8 unicode
print(b6)
b7 = b6.encode(gbk)   # gbk  bytes
print(b7)

b\xe4\xb8\xad\xe5\x9b\xbd
‘ #不同編碼的bytes數據,長度不一樣 中國 b\xd6\xd0\xb9\xfa

Python:基礎數據類型:bytes