Число может обозначать символ
Чтобы хранить текст, символам сопоставляют числовые коды, а кодировка определяет представление текста байтами. В Python функция chr() возвращает строку из символа с указанной кодовой точкой Unicode.
В диапазоне ASCII эти коды совпадают с привычной таблицей ASCII, поэтому исходное упражнение можно решить непосредственно через chr().
Задание и решение
Выведите символы с кодами 126, 94 и 37, каждый на отдельной строке:
print(chr(126))
print(chr(94))
print(chr(37))
Результат:
~
^
%
Порядок вызовов соответствует порядку числовых кодов в условии. Печать самих чисел не решает задачу: требуется сначала получить символы.
Unicode и кодировка
Редакционное уточнение к объяснению источника: кодовая точка символа и последовательность байтов UTF-8 — не одно и то же. Одна строка может быть закодирована разными способами; при чтении нужно использовать согласованную кодировку.
Указание encoding="utf-8" при работе с текстовым файлом делает выбранный способ явным. Нельзя предполагать, что любая программа, база данных или любой режим чтения Python во всех окружениях автоматически использует одинаковую настройку.
Что проверяет упражнение
Задание знакомит с переходом от числового кода к символу, а не с чтением внешних файлов. Ошибочная интерпретация байтов другой кодировкой может давать искажённый текст, но для приведённых трёх вызовов никаких файлов и сетевых данных не требуется.
Hexlet / Code Basics и участники · Исходный урок и решение · GNU AGPL v3. Упражнение сохранено; понятия и настройки уточнены.