python2中不區(qū)分str和bytes 律罢, bytes是從python3開始新添加的
bytes也有str類似的方法蛆橡,支持切片, 不可變
字符串前面加上b來表示一個序列是bytes
In [60]: b=b'you can do it.'
In [61]: type(b)
Out[61]: bytes
In [62]: b.find(b'do')
Out[62]: 8
In [63]: b[0:4]
Out[63]: b'you '
str使用encode()轉化成bytes贮乳, bytes使用decode()轉成str
默認使用的是UTF-8
的編碼, 如果是其他編碼霜幼,需要顯示的傳入編碼
In [64]: b.decode()
Out[64]: 'you can do it.'
bytearray
bytearray()
返回一個新字節(jié)數(shù)組。這個數(shù)組里的元素是可變的潮改,并且每個元素的值范圍: 0 <= x < 256
狭郑。下面說明一下幾種特別的使用方法:
- 如果source是一個字符串,那么必須給出endcoding是什么樣編碼的汇在,以便轉換為合適的字節(jié)保存翰萨。
- 如果source是一個整數(shù),那么這個數(shù)組將初始化為空字節(jié)糕殉。
- 如果source是一個有緩沖區(qū)接口的對象亩鬼,那么只讀的接口初始到數(shù)組里。
- 如果source是一個迭代對象糙麦,那么這個迭代對象的元素都必須符合
0 <= x < 256
辛孵,以便可以初始化到數(shù)組里
#bytearray()函數(shù)
a = bytearray('1234深圳', 'utf-8')
bytearray(b'1234\xe6\xb7\xb1\xe5\x9c\xb3')
b = bytearray()
bytearray(b'')
c = [1,4,5,7,8]
bytearray(b'\x01\x04\x05\x07\x08')