Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python:SyntaxError:EOL扫描字符串文字时_Python_String_String Literals - Fatal编程技术网

python:SyntaxError:EOL扫描字符串文字时

python:SyntaxError:EOL扫描字符串文字时,python,string,string-literals,Python,String,String Literals,我在s1=“一些很长的字符串………” 有人知道我做错了什么吗?你没有在行尾前放一个“ 如果要执行此操作,请使用“”: """ a very long string ...... ....that can span multiple lines """ (假设您的字符串中没有/想要换行符…) 这根绳子到底有多长 我怀疑从文件或命令行读取的行的长度是有限制的,因为行的末尾被切掉了,解析器会看到类似s1=“一些很长的字符串………(没有结尾”)的内容,从而抛出解析错误 通过在源中转义换行符,可以将长

我在
s1=“一些很长的字符串………”


有人知道我做错了什么吗?

你没有在行尾前放一个

如果要执行此操作,请使用“

""" a very long string ...... 
....that can span multiple lines
"""
(假设您的字符串中没有/想要换行符…)

这根绳子到底有多长

我怀疑从文件或命令行读取的行的长度是有限制的,因为行的末尾被切掉了,解析器会看到类似
s1=“一些很长的字符串………
(没有结尾
)的内容,从而抛出解析错误

通过在源中转义换行符,可以将长线拆分为多行,如下所示:

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

我遇到了这个问题——我最终发现原因是我在字符串中包含了
\
字符。如果您有这些错误,请使用
\\
将其“转义”,它应该可以正常工作。

我也收到了这个错误消息,对我来说,通过添加一个“\”解决了问题

结果是,我的长串被分成了大约八行,最后一行是“\”,其中一行缺少了一个“\”


PythonIdle没有指定这个错误所在的行号,但它红色突出显示了一个完全正确的变量赋值语句,这让我很生气。实际的变形字符串语句(多行加“\”)与高亮显示的语句相邻。也许这会帮助其他人。

我也有这个问题,虽然这里有答案,但我想指出一个重要的问题 之后
/
不应该有空格。请注意

在我的情况下,我的单引号字典字符串中有
\r\n
。我用
\\r
替换了
\r
的所有实例,用
\\n
替换了
\n
的所有实例,它解决了我的问题,正确地返回了eval'ed dict中转义的换行符

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

我面临着类似的问题。我有一个包含Windows中文件夹路径的字符串,例如
C:\Users\
问题是
\
是一个转义字符,因此要在字符串中使用它,您需要再添加一个
\

不正确:
C:\Users\


正确:
C:\\\Users\\
在我的情况下,我使用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
它起作用了

David

您的
变量(s1)
跨越多行。为了做到这一点(即您希望字符串跨越多行),必须使用三重引号(“”)

您可以尝试以下方法:

s = r'long\annoying\path'

以前的大多数答案都是正确的,我的答案与aaronasterling非常相似,你也可以做3个单引号
s1=''一些很长的字符串………''

在这种情况下,三个单引号或三个双引号都可以使用! 例如:

    """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
............"""

甚至只是

long_string = """
some
very 
long
string
............"""
是不同的
标准库中有一个函数可以处理这个问题,尽管使用它是不可能的


您也可以在字符串中使用
\n
,位于单行:

long_string = "some \nvery \nlong \nstring \n............"

此外,如果字符串中不需要任何换行符(即换行符),可以在常规字符串中使用
\

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

在我的例子中,我忘记了字符串末尾的(“or”)例如“ABC”或“ABC”

您确定它已正确关闭并且某处没有未替换的引号吗?未替换的引号会引发另一个解析错误。请注意,仅使用三个引号,我无意中遇到了四个,错误是关于连接字符串和变量的?它们被称为“转义字符”,这是非常标准的。你可以在字符串前面加一个
r
,以避免它们引起问题。这是最好的答案。也可以尝试
s=r'long\perating\path\\\'
。我也有同样的问题,但这并不能解决问题。再加上两道斜杠,第一道斜杠就可以换成第二道斜杠。最后一条斜线仍然会引起问题。
long_string = """some
    very 
long
string
............"""
long_string = """
some
very 
long
string
............"""
long_string = "some \nvery \nlong \nstring \n............"
long_string = "some \
very \
long \
string \
............"