主要有以下函数:
ascii函数
非ascii编码的字符返回unicode编码
ascii("python-xp手册")
# "'python-xp\\u624b\\u518c'"
ord函数
获得字符对应的Unicode编码
ord("a")
# 97
ord("我")
# 25105
chr函数
根据Unicode编码返回字符,与ord互为逆函数
chr(97)
# “a"
chr(25105)
# "我“
bytearray函数
返回字节数组对象
bytearray是由八位字节组成的数组,每个字节的最大数不能超过2**8,即256
示例1: 创建一个空的字节数组对象
array = bytearray()
# array是一个0长度的字节数组
print(array)
#输出
#bytearray(b'')
print(len(array))
#输出0
字节数组的每个元素只能是数字,因为所有的字符串本质都是数字形式存在于字节中
示例2: 创建一个由4个字节组成的空数组
#当bytearray传递一个正整数实参N时,创建一个N长度的字节数组
#每个字节用0填充
array = bytearray(4)
print(array)
#输出
#bytearray(b'\x00\x00\x00\x00')
示例3:将一个字符串转换成一个字节数组
# 将字符串转换成字节数组,必须使用encoding指定字符编码
array = bytearray("我", encoding="utf-8")
print(array)
#输出三个字节的字节数组
bytearray(b'\xe6\x88\x91')
事实上我们可以直接将b'\xe6\x88\x91'填充进一个字节数组
示例4: 使用数字序列填充字节数组
# utf-8编码的16进制数字
array = bytearray([0xe6, 0x88, 0x91])
print(array.decode("utf-8"))
#输出 "我"
#也可以使用10进制数字填充
array = bytearray([230, 136, 145])
bytearray是一个可变序列
方法 | 说明 |
---|---|
bytearray.clear() | 清空 |
bytearray.append(n) | 追加一个字节(n为0~255的整数) |
bytearray.remove(value) | 删除第一个出现的字节,如果没有则产生ValueError错误 |
bytearray.reverse() | 字节数组顺序进行反转 |
bytearray.decode(encoding='utf-8') | 将字节转为字符串 |
bytearray.find(sub[, start[,end]]) | 查找子字节串,这里的字串一定要是字节类型 |
bytes函数
将字符串转换成不可变序列字节组
示例1: 创建空字节
byte_seq = bytes()
示例2: 创建指定长度的字节组
byte_seq = bytes(3)
print(byte_seq)
# 输出 b'\x00\x00\x00'
示例3: 字节数据创建bytes
byte_seq = bytes("我",encoding="utf-8")
# 非ascii码要指定编码格式
print(byte_seq)
#输出 b'\xe6\x88\x91'
示例4: 通过数字创建bytes
byte_seq = bytes([0xe6,0x88,0x91])
byte_seq = bytes([230, 136, 145])
# “我”的字节序列
bytes与bytearray的区别在于bytes为不可变序列
讨论区