使用scala> l.cast[List[Int]]
res9: Option[List[Int]] = Some(List(1, 2, 3))
将反斜杠作为文字反斜杠,因此我无法使用unicode解析字符串输入。
我的意思是:
将input()
之类的字符串粘贴到"\uXXXX\uXXXX\uXXXX"
调用中将被解释为input()
,但我希望将其作为单个字符而不是两个单独的字符读取"\\uXXXX\\uXXXX\\uXXXX"
。
有谁知道如何或是否有可能实现这一目标?
编辑:我正在接受上面的输入并将其转换为ascii,如下面的..
\u
根据我标记的答案,正确的解决方案是:
import unicodedata
def Reveal(unicodeSol):
solution = unicodedata.normalize('NFKD', unicodeSol).encode('ascii', 'ignore')
print(solution)
while(True):
UserInput = input("Paste Now: ")
Reveal(UserInput)
答案 0 :(得分:1)
如果您可以确定输入不包含引号,则可以通过在两端添加引号将输入转换为字符串文字表示,然后使用ast.literal_eval()
将其计算为字符串。示例 -
import ast
inp = input("Input : ")
res = ast.literal_eval('"{}"'.format(inp))
如果输入可以包含引号,则可以在使用ast.literal_eval进行评估之前将双引号替换为r'\"'
。