Вы не создаете байтовый объект, добавляя 'b'
в начало строки.Вы смешиваете представление Python с фактическим содержимым.
b'bytes'
- это последовательность bytes
, где каждый элемент гарантированно представляет собой один 8-битный байт, соответствующий коду ASCII символа.
'b' + 'bytes'
- это строка в Юникоде, где каждый элемент не обязательно должен быть одним байтом, а, скорее, символом Python.Это эквивалентно
'bbytes'
или (чтобы быть действительно явным)
u'bbytes'
Префикс b
или u
является сигналом для интерпретатора Python о том, как последовательность должнабыть сохраненным, а не частью значения.
Чтобы преобразовать строку в bytes
объект, вызовите метод encode
строки.
output1 = b'bytes'.encode('us-ascii')