Подтвердить что ты не робот

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

Я просматривал Python Cookbook (2nd Edition), чтобы узнать, как обрабатывать строки и символы.

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

>>> print repr(unichr(8224))

... и выведет:

u'\u2020'

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

unichr(10000)

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

 NameError: name 'unichr' is not defined

В чем может быть проблема? Есть какой-то конкретный модуль, который я должен импортировать?

4b9b3361

Ответ 1

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

>>> chr(10000)
'✐'

Ответ 2

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

Ответ 3

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

Ответ 4

В случае, если вам нужно работать как в Python 2, так и в Python 3, вы можете использовать этот общий синтаксис (неиспользуемый синтаксис будет указывать на новый)

try:
    unichr
except NameError:
    unichr = chr