如何更改此功能以返回"123456"
?
def f():
s = """123
456"""
return s
更新:每个人,问题是关于如何在有多行评论时理解如何没有或等等,而不是如何使用re
模块。
答案 0 :(得分:52)
当您不需要额外的空格,制表符和换行符时,请勿使用三引号字符串。
使用隐式延续,它更优雅:
def f():
s = ('123'
'456')
return s
答案 1 :(得分:18)
def f():
s = """123\
456"""
return s
不要在第一行之后缩进任何blockquote行;用反斜杠结束除最后一行之外的每一行。
答案 2 :(得分:14)
后续字符串是连接的,因此您可以使用:
def f():
s = ("123"
"456")
return s
这样您就可以随意保持缩进。
答案 3 :(得分:10)
textwrap.dedent("""\
123
456""")
来自标准库。首先“\”是必要的,因为此函数通过删除公共前导空格来工作。
答案 4 :(得分:7)
也许我错过了一些明显的东西,但是这个:
def f():
s = """123456"""
return s
或者只是这个:
def f():
s = "123456"
return s
甚至更简单:
def f():
return "123456"
如果这不能回答您的问题,请澄清问题所在。
答案 5 :(得分:0)
您可能需要查看此str.splitlines([keepends])
返回字符串中的行列表,在行边界处断开。 此方法使用通用换行方法来分割线。 除非keepends是,否则换行符不包含在结果列表中 给予和真实。
Python将“\ r”,“\ n”和“\ r \ n”识别为8位字符串的行边界。
所以,对于手头的问题......我们可以做这样的事情......
>>> s = """123
... 456"""
>>> s
'123\n456'
>>> ''.join(s.splitlines())
'123456'
答案 6 :(得分:-1)
re.sub('\D+', '', s)
将返回一个字符串,如果您想要一个整数,请将此字符串转换为int
。
答案 7 :(得分:-1)
尝试
import re
然后
return re.sub("\s+", "", s)
答案 8 :(得分:-3)
我的猜测是:
def f():
s = """123
456"""
return u'123456'
最小变化并完成要求。