Поскольку ASCII 88 (заглавная буква X) пригодна для печати, и поведение bytes.str()
/ bytes.repr()
заключается в том, чтобы не кодировать печатаемые символы.
Просто попробуйте напечатать bytearray(range(256))
, и вы увидитечто существует диапазон печатаемых символов (от \x20
до \x7e
), которые не отображаются как \x##
.
Тем не менее, вы можете ввести \x58
в байтовой последовательности, но это будетснова будет отображаться как X
:
>>> b'\x58'
b'X'
Вот небольшая хитрость для печати всех значений, закодированных в \x##
форме:
>>> b = bytearray([2,88])
>>> print(''.join('\\x%02x'%x for x in b))
\x02\x58