Использование input()
выполняет обратную косую черту как буквенную обратную косую черту, поэтому я не могу разобрать строковый ввод с помощью unicode.ввод() и разбор синтаксического выражения в формате unicode
Что я имею в виду:
Оклейка строки как "\uXXXX\uXXXX\uXXXX"
в input()
вызов станет истолковано как "\\uXXXX\\uXXXX\\uXXXX"
но я хочу прочитать \u
как один символ вместо двух отдельных символов.
Кто-нибудь знает, как и если возможно, чтобы это произошло?
Edit: Я принимаю вход, как указано выше, и преобразования его в ASCII, например, как показано ниже ..
import unicodedata
def Reveal(unicodeSol):
solution = unicodedata.normalize('NFKD', unicodeSol).encode('ascii', 'ignore')
print(solution)
while(True):
UserInput = input("Paste Now: ")
Reveal(UserInput)
За ответом я отметил, правильное решение будет:
import unicodedata
import ast
def Reveal(unicodeSol):
solution = unicodedata.normalize('NFKD', unicodeSol).encode('ascii', 'ignore')
print(solution)
while(True):
UserInput = ast.literal_eval('"{}"'.format(input("Paste Now: ")))
Reveal(UserInput)
Это обратная косая черта. – interjay
Какой код вы используете для печати строки? Прошу показать сеанс вывода или интерпретатора. – Nayuki
input() не выполняет никакого специального анализа escape-последовательностей afaik, он просто возвращает буквально то, что пользователь набрал. Что бы вы хотели, чтобы (например) пользователь ввел неверную последовательность эвакуации? Есть способ решить эту проблему здесь: http://stackoverflow.com/questions/4020539/process-escape-sequences-in-a-string-in-python – Hammerite