如果用户输入一个包含转义字符的字符串(例如“Example \”或“C:\ Users ...”),我想完全接受它。换句话说,我试图规避处理上述输入时抛出的语法错误。
我觉得它应该很简单,但答案不在于我。有什么帮助吗?
编辑:我正在使用python 3答案 0 :(得分:5)
不要使用input()
;在接受字符串输入时使用raw_input()
。
input()
(在Python 2上)尝试将输入字符串解释为Python,raw_input()
根本不尝试解释文本,包括不尝试将\
反斜杠解释为escape序列:
>>> raw_input('Please show me how this works: ')
Please show me how this works: This is \n how it works!
'This is \\n how it works!'
在Python 3上,只使用input()
(Python 2的raw_input()
重命名);除非您还使用eval()
,否则不解释转义码:
>>> input('Please show me how this works: ')
Please show me how this works: This is \n how it works!
'This is \\n how it works!'
答案 1 :(得分:0)
如果您使用的是python 2.7,请使用raw_input()接受带有特殊字符的字符串。
示例程序
$vi demo.py
str1=raw_input("Enter the file with full path : ")
print "Given Path is : ",str
save and quit from vi editor
Output
$python demo.py
Enter the path :/home/ubuntu/deveops
Given path is : /home/ubuntu/deveops
$ python demo.py
Enter the path :\home\ubuntu\deveops
Given path is : \home\ubuntu\deveops
如果你使用python3使用input()接受带有特殊字符的字符串,因为python3没有raw_input()函数
$vi demo1.py
str1=input("Enter the file with full path : ")
print ("Given Path is : ",str1)
save and quit from vi editor
Output
$python demo1.py
Enter the path :/home/ubuntu/deveops
Given path is : /home/ubuntu/deveops
$ python demo1.py
Enter the path :\home\ubuntu\deveops
Given path is : \home\ubuntu\deveops
答案 2 :(得分:0)
处理输入时,使用eval()
函数。将输入作为争论传递给eval()
函数。
例如:
PYTHON 3
x=input()
x=eval(x)
或
x = eval ( input() )
input the following value:
\N{superscript two}
print ( x )
输出:
²