我有上述错误s1="一些很长的字符串............"
有人知道我哪里做错了吗?
我有上述错误s1="一些很长的字符串............"
有人知道我哪里做错了吗?
当前回答
我在postgresql函数中得到这个错误。我有一个很长的SQL,为了更好的可读性,我用\把它分成了多行。然而,这就是问题所在。我删除了所有,并使他们在一行来解决这个问题。我使用的是pgadmin III。
其他回答
之前的大部分答案都是正确的,我的答案和aaronasterling非常相似,你也可以做3个单引号 S1 = " '一些很长的字符串............''
我遇到了这个问题——我最终发现原因是我在字符串中包含了\字符。如果你有任何这些,“转义”他们与\\,它应该工作正常。
下面的所有代码都是用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 \
............"
在我的情况下,我的单引号字典字符串中有\r\n。我用\\r替换了\r的所有实例,用\\n替换了\\n,它修复了我的问题,正确地在eval'ed字典中返回转义换行符。
ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n'))
.....
在我的例子中,我使用Windows,所以我必须使用双引号而不是单引号。
C:\Users\Dr. Printer>python -mtimeit -s"a = 0"
100000000 loops, best of 3: 0.011 usec per loop