ในคอนโซล Python เมื่อฉันพิมพ์:
>>> "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
ให้:
'I\nwould\nexpect\nmultiple\nlines'
แม้ว่าฉันคาดหวังว่าจะได้เห็นผลลัพธ์ดังกล่าว:
I
would
expect
multiple
lines
ฉันขาดอะไรไปที่นี่?
ในคอนโซล Python เมื่อฉันพิมพ์:
>>> "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
ให้:
'I\nwould\nexpect\nmultiple\nlines'
แม้ว่าฉันคาดหวังว่าจะได้เห็นผลลัพธ์ดังกล่าว:
I
would
expect
multiple
lines
ฉันขาดอะไรไปที่นี่?
คำตอบ:
คอนโซลกำลังพิมพ์การแสดงไม่ใช่สตริงเอง
หากคุณขึ้นต้นด้วยprint
คุณจะได้รับสิ่งที่คุณคาดหวัง
ดูคำถามนี้สำหรับรายละเอียดเกี่ยวกับความแตกต่างระหว่างสตริงและการแทนค่าของสตริง ง่ายสุด ๆ การแสดงคือสิ่งที่คุณพิมพ์ในซอร์สโค้ดเพื่อรับสตริงนั้น
คุณลืม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 Interpreter ของคุณซึ่งจริงๆแล้วเป็น REPL มักจะแสดงการเป็นตัวแทนของสตริงแทนที่จะเป็นเอาต์พุตที่แสดงจริง การเป็นตัวแทนคือสิ่งที่คุณจะได้รับจากrepr
คำแถลง
>>> print repr("\n".join(['I', 'would', 'expect', 'multiple', 'lines']))
'I\nwould\nexpect\nmultiple\nlines'
คุณต้อง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
คุณต้องพิมพ์:
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
เมื่อคุณพิมพ์ด้วยสิ่งนี้print 'I\nwould\nexpect\nmultiple\nlines'
คุณจะได้รับ:
I
would
expect
multiple
lines
\n
เป็นตัวอักษรบรรทัดใหม่ใช้เป็นพิเศษสำหรับการทำเครื่องหมาย End-of-TEXT หมายถึงจุดสิ้นสุดของบรรทัดหรือข้อความ ลักษณะนี้ใช้ร่วมกันในหลายภาษาเช่น C, C ++ เป็นต้น