input() - 行继续符后的意外字符

时间:2014-01-03 21:09:23

标签: python string input

好的,我已经搜索了这个已经有一段时间,但还是无法解决这个问题。我确信这个问题在于input()。

networkPath = input("Drop Path: ")
print("test") # <- will never get here

SyntaxError:行继续符后面的意外字符

此外,如果用户将其输入放在引号中,则不会发生此错误。 如下所示:syntaxerror: unexpected character after line continuation character in python

我不希望用户必须将其输入包装在引号中。原因是他们将放置长网络路径,例如:\ oursite.com \ someplace \ global \ Communications \ News \ Sitemap

现在我知道你在想,“他们为什么不能用引号括起来?”原因是他们将从生成的电子邮件中复制并粘贴该网络路径。

提前致谢!

编辑:我应该注意,这在Windows命令行中失败而在pyscripter

中失败

2 个答案:

答案 0 :(得分:3)

这里的根本问题几乎可以肯定你是在学习Python 3,但是尝试使用Python 2.7解释器来完成它。不要那样做。转到download Python 3.3或更高版本并使用它。

但如果您真的故意尝试使用Python 2.7,请继续阅读:


  

我确信这个问题在于input()。

你是对的。正如the documentation所说,input是:

  

相当于eval(raw_input(prompt))

换句话说,无论用户输入的内容是什么,都会传递给eval。这意味着它被评估为Python代码。而且,除非用户碰巧键入了有效的Python代码(如引号中的字符串),否则您将获得SyntaxError

此处的解决方案很简单:请勿使用input,请使用raw_input


(请注意,Python 3的input与Python 2的raw_input相同,并且它与Python 2的input没有任何等价。这就是我相信你的原因使用错误的Python版本。)

答案 1 :(得分:1)

不要使用input();使用raw_input()。 Input()在读入文本上调用eval(),这个文本既不需要也不需要,并且负责此错误。