【发布时间】:2011-02-06 13:11:18
【问题描述】:
我正在使用 python 3.1.1。
我知道我可以使用 b'...' 形式的字节文字创建字节对象。在这些字节对象中,每个字节都可以表示为一个字符(如果我没记错的话,使用 ascii 代码)或十六进制/八进制数。十六进制数和八进制数可以使用转义符 \x 输入十六进制数,仅使用 \ 表示八进制数。
但是,十进制或二进制数没有转义序列。有没有办法将它们输入到字节对象中?
【问题讨论】:
标签: python python-3.x
我正在使用 python 3.1.1。
我知道我可以使用 b'...' 形式的字节文字创建字节对象。在这些字节对象中,每个字节都可以表示为一个字符(如果我没记错的话,使用 ascii 代码)或十六进制/八进制数。十六进制数和八进制数可以使用转义符 \x 输入十六进制数,仅使用 \ 表示八进制数。
但是,十进制或二进制数没有转义序列。有没有办法将它们输入到字节对象中?
【问题讨论】:
标签: python python-3.x
您可以使用内置的bytes 构造函数将整数序列转换为字节字符串:
>>> bytes((7,8,9,10,11))
b'\x07\x08\t\n\x0b'
>>> bytes(range(7,12))
b'\x07\x08\t\n\x0b'
>>> bytes((0b1,0b0,0b1))
b'\x01\x00\x01'
【讨论】:
你可以对整数使用二进制字面量
>>> b = bytearray(b'abc')
>>> b[0] = 0b1001 # `9` decimal (TAB)
>>> b
bytearray(b'\tbc')
【讨论】: