繁体   English   中英

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

[英]How does Python's triple-quote string work?

应该如何更改此函数以返回"123456"

def f():
    s = """123
    456"""
    return s

更新:大家,问题是关于了解多行注释时如何没有\\ t或其他内容,而不是如何使用re模块。

当您不需要多余的空格,制表符和换行符时,请不要使用三引号引起来的字符串。

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

def f():
    s = ('123'
         '456')
    return s
def f():
  s = """123\
456"""
  return s

不要在第一行之后缩进任何blockquote行; 除最后一行外的所有行都以反斜杠结尾。

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

def f():
    s = ("123"
         "456")
    return s

这将允许您根据需要保持缩进。

textwrap.dedent("""\
                123
                456""")

来自标准库。 第一个“ \\”是必需的,因为此功能通过删除公共的前导空格来起作用。

也许我缺少明显的东西,但是呢:

def f():
    s = """123456"""
    return s

或者只是这样:

def f():
    s = "123456"
    return s

甚至更简单:

def f():
    return "123456"

如果那不能回答您的问题,请说明问题的内容。

您可能要检查此str.splitlines([keepends])

返回字符串中的行列表,在行边界处中断。 此方法使用通用换行符方法来拆分行。 除非给出了keepends并且为true,否则换行符不包含在结果列表中。

Python将“ \\ r”,“ \\ n”和“ \\ r \\ n”识别为8位字符串的行边界。

因此,针对眼前的问题...我们可以这样做。

>>> s = """123
... 456"""
>>> s
'123\n456'
>>> ''.join(s.splitlines())
'123456'
re.sub('\D+', '', s)

将返回一个字符串,如果需要整数,请使用int将此字符串转换。

尝试

import re

然后

    return re.sub("\s+", "", s)

我的猜测是:

def f():
    s = """123
    456"""
    return u'123456'

最小的变化和要求什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM