Python - 加入换行符

时间:2013-01-28 11:18:20

标签: python string

在Python控制台中,当我输入:

>>> "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])

给出:

'I\nwould\nexpect\nmultiple\nlines'

虽然我希望看到这样的输出:

I
would
expect
multiple
lines

我在这里缺少什么?

5 个答案:

答案 0 :(得分:64)

控制台正在打印表示,而不是字符串本身。

如果您使用print作为前缀,您将得到您期望的结果。

有关字符串与字符串表示之间差异的详细信息,请参阅this question。超简化,表示是您在源代码中输入的字符串。

答案 1 :(得分:30)

您忘记了print结果。得到的是RE(P)L中的P,而不是实际的打印结果。

在Py2.x中你应该像

这样的东西
>>> print "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
I
would
expect
multiple
lines

在Py3.X中,print是一个函数,所以你应该做

print("\n".join(['I', 'would', 'expect', 'multiple', 'lines']))

现在这是简短的回答。您的Python解释器实际上是一个REPL,它始终显示字符串的表示形式而不是实际显示的输出。使用repr语句

可以获得表示
>>> print repr("\n".join(['I', 'would', 'expect', 'multiple', 'lines']))
'I\nwould\nexpect\nmultiple\nlines'

答案 2 :(得分:8)

您需要print才能获得该输出 你应该做

>>> x = "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
>>> x                   # this is the value, returned by the join() function
'I\nwould\nexpect\nmultiple\nlines'
>>> print x    # this prints your string (the type of output you want)
I
would
expect
multiple
lines

答案 3 :(得分:2)

你必须打印它:

In [22]: "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
Out[22]: 'I\nwould\nexpect\nmultiple\nlines'

In [23]: print "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
I
would
expect
multiple
lines

答案 4 :(得分:2)

使用此print 'I\nwould\nexpect\nmultiple\nlines'打印时,您会得到:

I
would
expect
multiple
lines

\n是一个专门用于标记END-OF-TEXT的新行字符。它表示行或文本的结尾。这种特性由许多语言共享,如C,C ++等。