python:SyntaxError:EOL扫描string文字

我有上面提到的错误在s1="some very long string............"

任何人都知道我在做什么错了?

你不是在行结束之前。

使用"""如果你想这样做:

 """ a very long string ...... ....that can span multiple lines """ 

我有这个问题 – 我终于搞清楚了,原因是我在string中包含了\字符。 如果你有任何这些,用\\ “逃避”它们,它应该工作正常。

(假设你没有/想在你的string换行符…)

这个string真的有多长?

我怀疑从文件或命令行读取的行可以有多长时间,并且由于行的末尾被截断,parsing器会看到类似s1="some very long string.......... (没有结尾" ),并因此抛出parsing错误?

您可以通过在源代码中跳转换行符来分隔多行代码,如下所示:

 s1="some very long string.....\ ...\ ...." 

在我的情况下,我在单引号字典string中有\r\n 。 我用\ r和\nreplace\r所有实例,并修复了我的问题,正确地返回了eval字典中的换行符。

 ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n')) 

我也有这个问题,虽然有答案在这里我想重要的一点之后/不应该有空的空间。要意识到这一点

我也有这个确切的错误消息,对我来说,问题是通过添加一个“\”

事实certificate,我的长串,最后分成大约八行“\”,在一行中缺less一个“\”。

Python IDLE没有指定这个错误所在的行号,但是它突出显示了一个完全正确的variables赋值语句,将我抛弃了。 实际的畸形string语句(多行与“\”)与被突出显示的语句相邻。 也许这会帮助别人。

我面临类似的问题。 我有一个string包含path在Windows中的文件夹,例如C:\Users\问题是\是一个转义字符,所以为了在string中使用它,你需要添加一个\

不正确: C:\Users\

正确: C:\\\Users\\\

在我的情况下,我使用Windows,所以我不得不使用双引号而不是单引号。

 C:\Users\Dr. Printer>python -mtimeit -s"a = 0" 100000000 loops, best of 3: 0.011 usec per loop