我有上述错误s1="一些很长的字符串............"
有人知道我哪里做错了吗?
我有上述错误s1="一些很长的字符串............"
有人知道我哪里做错了吗?
你没有在一行的末尾加上“”。
如果你想这样做,使用""":
""" a very long string ......
....that can span multiple lines
"""
(假设你没有/不想在你的字符串中换行…)
这个字符串到底有多长?
我怀疑从文件或命令行读取一行的长度是有限制的,因为行尾被截断,解析器会看到类似s1="一些非常长的字符串..........(没有结尾),从而抛出解析错误?
你可以通过在源代码中转义换行符将长行拆分为多行,如下所示:
s1="some very long string.....\
...\
...."
我也有这个确切的错误信息,对我来说,这个问题通过添加“\”来解决
原来,我的长字符串被分成了大约八行,最后是“\”,其中一行少了一个“\”。
Python IDLE没有指定这个错误所在的行号,但它用红色高亮显示了一个完全正确的变量赋值语句,把我弄糊涂了。实际的畸形字符串语句(带有“\”的多行)与被突出显示的语句相邻。也许这能帮到别人。
在我的情况下,我的单引号字典字符串中有\r\n。我用\\r替换了\r的所有实例,用\\n替换了\\n,它修复了我的问题,正确地在eval'ed字典中返回转义换行符。
ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n'))
.....
我也遇到过类似的问题。我有一个字符串,其中包含Windows中的文件夹路径,例如C:\Users\问题是\是一个转义字符,所以为了在字符串中使用它,你需要再添加一个\。
错误:C:\Users\
正确的:C: \ \ \ \用户
在我的例子中,我使用Windows,所以我必须使用双引号而不是单引号。
C:\Users\Dr. Printer>python -mtimeit -s"a = 0"
100000000 loops, best of 3: 0.011 usec per loop
我在postgresql函数中得到这个错误。我有一个很长的SQL,为了更好的可读性,我用\把它分成了多行。然而,这就是问题所在。我删除了所有,并使他们在一行来解决这个问题。我使用的是pgadmin III。
在我使用Mac OS X的情况下,我有以下声明:
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)
我得到了错误:
File "<stdin>", line 1
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)
^
SyntaxError: EOL while scanning string literal
当我改为:
model.export_srcpkg(platform, toolchain, "mymodel_pkg.zip", "mymodel.dylib")
它工作…
大卫
变量(s1)跨越多行。为了做到这一点(即你想要你的字符串跨越多行),你必须使用三引号(""")。
s1="""some very long
string............"""
在这种情况下,三单报价或三双报价都可以! 例如:
"""Parameters:
...Type something.....
.....finishing statement"""
OR
'''Parameters:
...Type something.....
.....finishing statement'''
在访问任何硬盘目录时,我都遇到过同样的问题。 然后我用这种方法解决了它。
import os
os.startfile("D:\folder_name\file_name") #running shortcut
os.startfile("F:") #accessing directory
上图显示了一个错误和已解决的输出。
下面的所有代码都是用Python 3.8.3测试的
最简单的——使用三引号。 单引号:
long_string = '''some
very
long
string
............'''
或双:
long_string = """some
very
long
string
............"""
注意:三引号字符串保留缩进,这意味着
long_string = """some
very
long
string
............"""
and
long_string = """some
very
long
string
............"""
或者只是
long_string = """
some
very
long
string
............"""
是不一样的。 在标准库中有一个textwrap.dedent函数来处理这个问题,尽管使用它超出了问题的范围。
你也可以在字符串中使用\n,停留在单行上:
long_string = "some \nvery \nlong \nstring \n............"
此外,如果你不需要任何换行符(即换行符)在字符串中,你可以在常规字符串中使用\:
long_string = "some \
very \
long \
string \
............"