Python - Tham gia với dòng mới


88

Trong bảng điều khiển Python, khi tôi nhập:

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

Cung cấp:

'I\nwould\nexpect\nmultiple\nlines'

Mặc dù tôi mong đợi sẽ thấy một kết quả như vậy:

I
would
expect
multiple
lines

Tôi còn thiếu gì ở đây?

Câu trả lời:


88

Bảng điều khiển đang in biểu diễn, không phải chính chuỗi.

Nếu bạn đặt tiền tố bằng print, bạn sẽ nhận được những gì bạn mong đợi.

Xem câu hỏi này để biết chi tiết về sự khác biệt giữa một chuỗi và cách biểu diễn của chuỗi. Siêu đơn giản, biểu diễn là những gì bạn nhập mã nguồn để lấy chuỗi đó.


41

Bạn quên printkết quả. Những gì bạn nhận được là Ptrong RE(P)Lvà không phải là kết quả in thực tế.

Trong Py2.x, bạn nên làm như vậy

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

và trong Py3.X, print là một hàm, vì vậy bạn nên làm

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

Đó là câu trả lời ngắn gọn. Trình thông dịch Python của bạn, thực sự là một REPL, luôn hiển thị biểu diễn của chuỗi thay vì đầu ra được hiển thị thực tế. Trình bày là những gì bạn sẽ nhận được với reprtuyên bố

>>> print repr("\n".join(['I', 'would', 'expect', 'multiple', 'lines']))
'I\nwould\nexpect\nmultiple\nlines'

13

Bạn cần đạt printđược đầu ra đó.
Bạn nên làm

>>> 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

4

Bạn phải in nó:

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

Khi bạn in nó với cái này, print 'I\nwould\nexpect\nmultiple\nlines'bạn sẽ nhận được:

I
would
expect
multiple
lines

\nmột ký tự dòng mới được sử dụng đặc biệt để đánh dấu END-OF-TEXT. Nó biểu thị sự kết thúc của dòng hoặc văn bản. Đặc điểm này được chia sẻ bởi nhiều ngôn ngữ như C, C ++, v.v.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.