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和\n
replace\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