Python的三引号字符串如何工作?

Ram*_*hum 32 python string

该功能应如何更改才能返回"123456"

def f():
    s = """123
    456"""
    return s
Run Code Online (Sandbox Code Playgroud)

更新:每个人,问题是关于理解如何在没有多线注释时没有或没有什么,而不是如何使用re模块.

nos*_*klo 52

当您不需要额外的空格,制表符和换行符时,请勿使用三引号字符串.

使用隐式延续,它更优雅:

def f():
    s = ('123'
         '456')
    return s
Run Code Online (Sandbox Code Playgroud)


小智 18

def f():
  s = """123\
456"""
  return s
Run Code Online (Sandbox Code Playgroud)

在第一行之后不要缩进任何blockquote行; 用反斜杠结束除最后一行之外的每一行.


Den*_*ach 14

后续字符串是连接的,因此您可以使用:

def f():
    s = ("123"
         "456")
    return s
Run Code Online (Sandbox Code Playgroud)

这将允许您随意保持缩进.


小智 10

textwrap.dedent("""\
                123
                456""")
Run Code Online (Sandbox Code Playgroud)

来自标准库.首先"\"是必要的,因为此函数通过删除公共前导空格来工作.


Joa*_*uer 7

也许我错过了一些明显的东西,但是这个怎么样:

def f():
    s = """123456"""
    return s
Run Code Online (Sandbox Code Playgroud)

或者只是这样:

def f():
    s = "123456"
    return s
Run Code Online (Sandbox Code Playgroud)

甚至更简单:

def f():
    return "123456"
Run Code Online (Sandbox Code Playgroud)

如果这不能回答您的问题,请澄清问题所在.

  • 三引号字符串不是多行注释,它是一个原始字符串,并且包含您键入的内容. (9认同)
  • 从技术上讲,三引号字符串不是原始字符串,因为反斜杠转义仍然被解释.它是一个普通的python字符串,其中保留了未转义的换行符(而不是导致解析错误).你可以使用r"""blabla"""创建一个真正原始的三引号字符串.这对于制作需要包含单引号和双引号以及反斜杠的正则表达式模式非常有用. (2认同)