Unicode escape не работает с пользовательским вводом - PullRequest
0 голосов
/ 21 октября 2018

У меня есть короткий скрипт на python, который должен печатать символы Юникода из числа, которое вводит пользователь.Тем не менее, это дает мне ошибку.

Вот мой код:

print("\u" + int(input("Please enter the number of a unicode character: ")))

Это дает мне эту ошибку:

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in 
position 0-1: truncated \uXXXX escape

Почему это не получается?

1 Ответ

0 голосов
/ 21 октября 2018

Вам понадобится unicode_escape сама строка:

input_int = int(input("Please enter the number of a unicode character: "))
# note that the `r` here prevents the `SyntaxError` you're seeing here
# `r` is for "raw string" in that it doesn't interpret escape sequences
# but allows literal backslashes
escaped_str = r"\u{}".format(input_int)  # or `rf'\u{input_int}'` py36+
import codecs
print(codecs.decode(escaped_str, 'unicode-escape'))

Пример сеанса:

>>> input_int = int(input("Please enter the number of a unicode character: "))
Please enter the number of a unicode character: 2603
>>> escaped_str = r"\u{}".format(input_int)  # or `rf'\u{input_int}'` py36+
>>> import codecs
>>> print(codecs.decode(escaped_str, 'unicode-escape'))
☃
...