DEV Community

Danil Poletavkin
Danil Poletavkin

Posted on

Строки и строки байтов в Python

Строка - это набор символов, а строка байтов - это именно это и есть - строка байтов. Обычная строка перед тем, как станет возможным сохранить её на компьютере должна быть преобразована (encoding) в строку байтов.

Обычные строки - это наборы символов на каком-то человеческом языке, они читаются и понимаются, строки байтов - могут быть представлены в двоичном или шестнадцатеричном (или каком-то другом) формате и людьми обычно не понимаются.

Тем не менее в Python если какой-то переменной присвоить строку байтов b'string' и вывести в консоль, то Python представит строку байтов как строку доступную для чтения.

s=b'string'
print(s)
# Вывод: b'string'
Enter fullscreen mode Exit fullscreen mode

Здесь дело в том, что перед выводом на консоль команда print преобразовывает строку байтов в формат, удобный для чтения, то есть в обычную строку. На самом деле это будет по-прежнему строка байтов, а не набор символов как каком-то из международных языков. К примеру можно представить набор символов строки s в шестнадцатеричном формате

c=s.hex()
print(s)
# Вывод: 737472696e67
Enter fullscreen mode Exit fullscreen mode

Использован ответ пользователя stackoverflow.com

https://stackoverflow.com/a/31322359/12613870

Top comments (0)