Python - присоединиться с новой строкой

89

В консоли Python, когда я печатаю:

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

Дает:

'I\nwould\nexpect\nmultiple\nlines'

Хотя я ожидал увидеть такой результат:

I
would
expect
multiple
lines

Что мне здесь не хватает?

TTT
источник

Ответы:

88

Консоль печатает представление, а не саму строку.

Если вы поставите префикс с print, вы получите то, что ожидаете.

См. Этот вопрос для получения подробной информации о разнице между строкой и строковым представлением. Сверхупрощенное представление - это то, что нужно ввести в исходный код, чтобы получить эту строку.

размотать
источник
41

Вы забыли printрезультат. То , что вы получите это Pв , RE(P)Lа не фактический результат печати.

В Py2.x у вас должно получиться что-то вроде

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

а в Py3.X печать - это функция, поэтому вам следует сделать

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'
Абхиджит
источник
13

Вам нужно 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
Pradyunsg
источник
4

Вы должны его распечатать:

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

Когда вы распечатаете это, print 'I\nwould\nexpect\nmultiple\nlines'вы получите:

I
would
expect
multiple
lines

Это \nсимвол новой строки, специально используемый для обозначения КОНЕЦ ТЕКСТА. Это означает конец строки или текста. Эти характеристики характерны для многих языков, таких как C, C ++ и т. Д.

Сиби
источник