- 字节串bytes
作用:存储以字节为单位的数据
说明:字节串是不可变的字节序列
字节是0-255之间的整数
创建空字节串的字面值
b''
b""
b''''''
b""""""
B''
B""
B''''''
B""""""
创建非空字节串的字面值:
b'ABCD'
b'\x41\x41'
字节串的构造函数bytes
#只能用来表示1个字节内的ascii码,故整数不能超过255
bytes() 生成一个空的字节串,等同于b''
bytes(整型可迭代对象) 用可迭代对象初始化一个字节串
#例如:bytes([10,20,30,40,50,60])
#bytes(range(97,97+26)) b'abcdefghijklmnopqrstuvwxyz'
bytes(整数n) 生成n个值为0的字节值
#b'\x00\x00\x00.....'
bytes(字符串,encoding='utf-8')
#例如bytes('hello中国','utf-8') 表示中文必须使用utf-8标准
#b'hello\xe4\xb8\xad\xe5\x9b\xbd' 一个中文三个字节
- 字节串的运算
+ += * *=
< <= > >= == !=
in / not in
索引/切片
示例:
b = b'abc' + b'123'
b += b'ABC' #b = b'abc123ABC'
b'ABD' > b'ABC' #True
b = b'ABCD'
65 in b #True
b'A' in b #True
b = b'ABCD'
b[0] #65
b[0] = 72 #出现TypeError,字节串不可变,不支持修改
b[5] #越界
b[::2] #b'AC'
用于序列的函数都可以用于字节串:
len(x),max(x),min(x),sum(x)
-
bytes与str之间的区别:
bytes 存储字节
str 存储unicode字符(0-65535) -
bytes与str转换
编码(encode): str -------> bytes b = s.encode('utf-8') 解码(decode): bytes -------> str s = b.decode('utf-8')
二、字节数组bytearray
可变的字节序列 -
创建字节数组的构造函数:
bytearray() #创建空的字节数组
bytearray(整数) #整数个0的字节数组
bytearray(整型可迭代对象)
bytearray(字符串,encoding='utf-8')
- 字节数组的运算:
+ += * *=
< <= > >= == !=
in / not in
索引 / 切片
- 字节数组的方法:
B.clear #清空字节数组
B.append(n) #追加一个字节(n为0-255的整数)
B.remoce(value)
#删除第一个出现的字符,如果没有则产生ValueError错误
B.reverse() #字节顺序反转
B.decode(encoding='utf-8') #解码
B.find(sub[,start[]],end) #查找