Не может использовать unichr в Python 3.1

Я просматривал Поваренную книгу Python (2-й Выпуск), чтобы изучить, как обработать строки и символы.

Я хотел попытаться преобразовать число в его эквивалентный Unicode. Таким образом, я пытался использовать встроенную функцию, названную 'unichr', который, согласно Поваренной книге, идет что-то как:

>>> print repr(unichr(8224))

... и произведет:

u'\u2020'

Однако код перестал работать. Я думал, что это имело некоторое отношение к печати (потому что печать использования Python 3 () вместо печати""), но это не удалось также. Я попробовал несколько изменений к коду, и он все еще перестал работать. В конце концов я просто ввел простую строку:

unichr(10000)

К моему удивлению это сообщение об ошибке продолжало открываться, независимо от того, что оценивает, я поместил в вышеупомянутую функцию:

 NameError: name 'unichr' is not defined

Какова могла быть проблема? Есть ли некоторый определенный модуль, который я, как предполагается, импортирую?

52
задан Peter Mortensen 28 June 2018 в 01:23
поделиться

3 ответа

В Python 3 вы просто используете chr :

>>> chr(10000)
'✐'
68
ответ дан 7 November 2019 в 09:23
поделиться

В Python 3 больше нет разницы между строками Unicode и обычными строками. Только между строками юникода и двоичными данными. Поэтому разработчики наконец удалили функцию unichr в пользу обычного chr , который теперь выполняет то же самое, что и старый unichr . См. Документацию здесь .

17
ответ дан 7 November 2019 в 09:23
поделиться

Python 3.x не имеет специального строкового типа / класса Unicode. Каждая строка является строкой Unicode. Итак ... Я бы попробовал chr . Должен дать вам то, что unichr делал до 3.x. К сожалению, не могу проверить.

4
ответ дан 7 November 2019 в 09:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: