Python:基礎數據類型:bytes
阿新 • • 發佈:2018-05-24
AD 直接 pytho int ltib XA utf 長度 str
Python:基礎數據類型---bytes
由於Python的字符串類型是str
,在內存中以Unicode表示,一個字符對應若幹個字節。如果要在網絡上傳輸,或者保存到磁盤上,就需要把str
變為以字節為單位的bytes
。
Python對bytes
類型的數據用帶b
前綴的單引號或雙引號表示:
b1 = b‘alex‘ print(b1,type(b1) b‘alex‘ <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) b‘alex‘ alex
指定編碼轉換:
s1 = ‘alex‘ b2 = s1.encode(‘gbk‘) s3 = b2.decode(‘gbk‘) print(b2) print(s3) b‘alex‘ 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