Строка - это набор символов, а строка байтов - это именно это и есть - строка байтов. Обычная строка перед тем, как станет возможным сохранить её на компьютере должна быть преобразована (encoding) в строку байтов.
Обычные строки - это наборы символов на каком-то человеческом языке, они читаются и понимаются, строки байтов - могут быть представлены в двоичном или шестнадцатеричном (или каком-то другом) формате и людьми обычно не понимаются.
Тем не менее в Python если какой-то переменной присвоить строку байтов b'string' и вывести в консоль, то Python представит строку байтов как строку доступную для чтения.
s=b'string'
print(s)
# Вывод: b'string'
Здесь дело в том, что перед выводом на консоль команда print преобразовывает строку байтов в формат, удобный для чтения, то есть в обычную строку. На самом деле это будет по-прежнему строка байтов, а не набор символов как каком-то из международных языков. К примеру можно представить набор символов строки s в шестнадцатеричном формате
c=s.hex()
print(s)
# Вывод: 737472696e67
Использован ответ пользователя stackoverflow.com
Top comments (0)