W konsoli Pythona podczas wpisywania:
>>> "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
Daje:
'I\nwould\nexpect\nmultiple\nlines'
Chociaż spodziewałbym się takiego wyjścia:
I
would
expect
multiple
lines
Czego tu brakuje?
Konsola drukuje reprezentację, a nie sam łańcuch.
Jeśli dodasz prefiks print
, otrzymasz to, czego oczekujesz.
Zobacz to pytanie, aby uzyskać szczegółowe informacje na temat różnicy między ciągiem a jego reprezentacją. Uproszczone, reprezentacja jest tym, co wpisujesz w kodzie źródłowym, aby uzyskać ten ciąg.
Zapomniałeś o print
wyniku. Co można dostać to P
w RE(P)L
a nie rzeczywisty wynik wydrukowany.
W Py2.x powinieneś coś w stylu
>>> print "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
I
would
expect
multiple
lines
aw Py3.X print jest funkcją, więc powinieneś to zrobić
print("\n".join(['I', 'would', 'expect', 'multiple', 'lines']))
To była krótka odpowiedź. Twój interpreter Pythona, który w rzeczywistości jest REPL, zawsze wyświetla reprezentację ciągu zamiast faktycznego wyświetlanego wyniku. Reprezentacja jest tym, co otrzymasz wraz z repr
oświadczeniem
>>> print repr("\n".join(['I', 'would', 'expect', 'multiple', 'lines']))
'I\nwould\nexpect\nmultiple\nlines'
Musisz print
uzyskać to wyjście.
Powinieneś zrobić
>>> 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
Musisz to wydrukować:
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
Gdy wydrukujesz to w ten print 'I\nwould\nexpect\nmultiple\nlines'
sposób, otrzymasz:
I
would
expect
multiple
lines
Jest \n
to znak nowego wiersza specjalnie używany do oznaczania KONIEC TEKSTU. Oznacza koniec linii lub tekstu. Ta cecha jest wspólna dla wielu języków, takich jak C, C ++ itp.