如何编写多行Python字符串:三重引号与括号"技巧"

时间:2014-08-07 13:05:11

标签: python string python-2.7 multiline

所以我经常写这样的多行字符串:

>>> s = """hello this is the first line
... and this is the second"""
>>> s
'hello this is the first line\nand this is the second'

但最近我遇到了这个:

>>> s = ( 'hello this is the first line'
... 'and this is the second' )
>>> s
'hello this is the first lineand this is the second'

好的,line\nand成了lineand。这两种方法之间是否存在其他差异?我什么时候应该使用第二个?

3 个答案:

答案 0 :(得分:3)

第二种形式本质上是一种隐式连接。当您需要编写一个应该在一行上的非常长的字符串时,您可以使用它,但是您希望在IDE /文本编辑器(通常只能显示它)中更容易阅读每行每行大约80-100个字符。)

答案 1 :(得分:3)

首先,'括号技巧'实际上不是多行字符串,只是隐式行连接。 python的这种行为记录在here

你写的方式是不同的东西,所以你应该使用它取决于你是否想要字符串中的换行符。

如果您想尝试使用带括号的版本,并明确将\n字符放入每一行,则更好的选择是使用textwrap.dedent

答案 2 :(得分:-2)

>>> s = ( 'hello this is the first line'
... 'and this is the second' )
>>> s = ( 'hello this is the first line''and this is the second' )
>>> s = ( 'hello this is the first lineand this is the second' )
>>> s = 'hello this is the first lineand this is the second'

结果

>>> s
'hello this is the first lineand this is the second'