例如,如果我这样做:
test=input("Text: ")
print(test)
然后将test设置为hello\nhow are you?
,然后调用test(),我希望它显示为:
hello
how are you?
而不是
hello\nhow are you?
这可能吗? -darth
答案 0 :(得分:4)
序列\n
(所以反斜杠和字母n
)是escape sequence。 Python string literals支持此类序列。许多编程语言也支持字符串文字中的这种序列,JSON字符串也是如此。但这并没有使这些序列通用。
input()
只接受用户提供的输入,并返回该输入。没有更多,没有更少,没有特别的意义,这是设计的。因此,如果您想为一系列与其正常含义不同的字符赋予意义,那么您必须自己编写代码。
你可以使用str.replace()
;如果你想要的只是\n
是换行符,那么这是最简单的:
test = input("Text: ")
test = test.replace('\\n', '\n')
因为你必须定义字符串文字以告诉str.replace()
该怎么做,你现在确实支持转义序列,并且必须告诉Python 不要创建换行符,但是文字\
后跟n
字符,用实际的换行符替换该序列。
如果您想支持Python字符串文字支持的所有转义序列,那么可以通过unicode_escape
codec使用codecs.decode()
function:
import codecs
test = input("Text: ")
test = codecs.decode(test, 'unicode_escape')
然后解释Python字符串文字语法支持的所有可能的转义序列,包括\n
,\t
,\b
,\uhhhh
等。