关于string:Python – 加入换行符

Python - Join with newline

在python控制台中,当我键入:

1
2
>>>"
"
.join(['I', 'would', 'expect', 'multiple', 'lines'])

给予:

1
2
3
4
5
'I
would
expect
multiple
lines'

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

1
2
3
4
5
I
would
expect
multiple
lines

我这里缺什么?


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

如果你以print作为前缀,你会得到你想要的。

有关字符串和字符串表示形式之间的差异的详细信息,请参阅此问题。这种表示法非常简单,您可以在源代码中键入代码来获取该字符串。


你忘了把结果告诉print。你得到的是RE(P)L中的P而不是实际打印的结果。

在py2.x中,你应该

1
2
3
4
5
6
7
>>> print"
"
.join(['I', 'would', 'expect', 'multiple', 'lines'])
I
would
expect
multiple
lines

在py3.x中,print是一个函数,所以应该这样做

1
2
print("
"
.join(['I', 'would', 'expect', 'multiple', 'lines']))

现在这是个简短的回答。python解释器实际上是一个repl,它总是显示字符串的表示,而不是实际显示的输出。代表性就是你能从repr声明中得到的。

1
2
3
4
5
6
7
>>> print repr("
"
.join(['I', 'would', 'expect', 'multiple', 'lines']))
'I
would
expect
multiple
lines'


您需要print来获得输出。你应该做

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> x ="
"
.join(['I', 'would', 'expect', 'multiple', 'lines'])
>>> x                   # this is the value, returned by the join() function
'I
would
expect
multiple
lines'

>>> print x    # this prints your string (the type of output you want)
I
would
expect
multiple
lines

当你用这个print 'I
would
expect
multiple
lines'
打印它时,你会得到:

1
2
3
4
5
I
would
expect
multiple
lines


是一种新的行字符,专门用于标记文本的结尾。它表示行或文本的结尾。这种特性是由C、C++等多种语言共享的。


你必须打印它:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
In [22]:"
"
.join(['I', 'would', 'expect', 'multiple', 'lines'])
Out[22]: 'I
would
expect
multiple
lines'


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