Python 为什么bytearray()返回大于一个字节的值?

Python 为什么bytearray()返回大于一个字节的值?,python,arrays,python-3.x,hex,Python,Arrays,Python 3.x,Hex,我正在尝试将十六进制输入转换为字节数组。 基本上,我试过: bytearray.fromhex('e832') 转换为整数:bytearray([232,50])返回以下内容: bytearray(b'\xe82') 而不是我所期望的(并且需要输出的样子): 为什么会这样?xe82是否大于一个字节的最大值 使用bytes()做同样的事情 (Python 3.8.1)Python仅对不可打印的ASCII字符使用转义符。十六进制32相当于十进制50,对应于ASCII字符“2”。所以输出是正确的,

我正在尝试将十六进制输入转换为字节数组。 基本上,我试过:

  • bytearray.fromhex('e832')

  • 转换为整数:
    bytearray([232,50])
    返回以下内容:

    bytearray(b'\xe82')

  • 而不是我所期望的(并且需要输出的样子):

    为什么会这样?xe82是否大于一个字节的最大值

    使用
    bytes()
    做同样的事情


    (Python 3.8.1)

    Python仅对不可打印的ASCII字符使用转义符。十六进制
    32
    相当于十进制
    50
    ,对应于ASCII字符“2”。所以输出是正确的,完全符合预期。啊,我明白了。有没有办法让bytearray只输出您知道的十六进制值,以提高可读性?没有,这就是
    repr
    的工作原理。如果要查看每个字节的十进制值,可以执行
    列表(b'\xe82')
    =>
    [232,50]
    。或者,如果您使用的是Python>=3.5,则可以执行
    b'\xe82'.hex('')
    =>
    'e8 32'
    .IOW:
    b'\x32'==b'2'
    bytearray(b'\xe8\x32')