สมมติว่าฉันมีไฟล์ ฉันจะเขียน "hello" TAB "alex" ได้อย่างไร
สมมติว่าฉันมีไฟล์ ฉันจะเขียน "hello" TAB "alex" ได้อย่างไร
คำตอบ:
นี่คือรหัส:
f = open(filename, 'w')
f.write("hello\talex")
\t
ภายในสตริงเป็นลำดับหนีสำหรับการจัดระเบียบในแนวนอน
print "a\tb"
ให้ฉันa (8 spaces)b
อยู่ในบนcmd
Windows
เหตุใดจึงพิมพ์ 8 ช่องว่างแทนอักขระแท็บ
a (tab character)b
คู่มืออ้างอิง Python ประกอบด้วยตัวอักษรสตริงหลายตัวที่สามารถใช้ในสตริงได้ ลำดับอักขระพิเศษเหล่านี้จะถูกแทนที่ด้วยความหมายที่ตั้งใจไว้ของลำดับการหลีกเลี่ยง
นี่คือตารางของลำดับการหลีกเลี่ยงที่มีประโยชน์มากขึ้นและคำอธิบายของผลลัพธ์จากพวกเขา
Escape Sequence Meaning
\t Tab
\\ Inserts a back slash (\)
\' Inserts a single quote (')
\" Inserts a double quote (")
\n Inserts a ASCII Linefeed (a new line)
ตัวอย่างพื้นฐาน
หากฉันต้องการพิมพ์จุดข้อมูลบางจุดโดยคั่นด้วยพื้นที่แท็บฉันสามารถพิมพ์สตริงนี้ได้
DataString = "0\t12\t24"
print (DataString)
ผลตอบแทน
0 12 24
ตัวอย่างสำหรับรายการ
นี่คืออีกตัวอย่างหนึ่งที่เรากำลังพิมพ์รายการในรายการและเราต้องการกระจายรายการโดยใช้ TAB
DataPoints = [0,12,24]
print (str(DataPoints[0]) + "\t" + str(DataPoints[1]) + "\t" + str(DataPoints[2]))
ผลตอบแทน
0 12 24
สตริงดิบ
โปรดทราบว่าสตริงดิบ (สตริงที่มีคำนำหน้า "r") สตริงลิเทอรัลจะถูกละเว้น สิ่งนี้ทำให้สามารถรวมลำดับอักขระพิเศษเหล่านี้ในสตริงได้โดยไม่ต้องเปลี่ยนแปลง
DataString = r"0\t12\t24"
print (DataString)
ผลตอบแทน
0\t12\t24
ซึ่งอาจเป็นผลลัพธ์ที่ไม่ต้องการ
ความยาวสตริง
นอกจากนี้ควรสังเกตด้วยว่าตัวอักษรสตริงมีความยาวเพียงอักขระเดียว
DataString = "0\t12\t24"
print (len(DataString))
ผลตอบแทน
7
สตริงดิบมีความยาว 9
\t
ฉันจำเป็นต้องมีช่องว่างระหว่างองค์ประกอบของฉันที่อยู่ที่ประมาณครึ่งหนึ่งของ ฉันจะทำเช่นนี้ได้อย่างไร?
คุณสามารถใช้ \ t ในสตริงลิเทอรัล:
"hello\talex"
โดยปกติจะ\t
อยู่ในอินเตอร์เฟสบรรทัดคำสั่งซึ่งจะแปลงถ่าน\t
เป็นอักขระแท็บช่องว่าง
ยกตัวอย่างเช่น->hello\talex
hello--->alex
เนื่องจากไม่ได้ระบุไว้ในคำตอบใด ๆ ในกรณีที่คุณต้องการจัดแนวและเว้นวรรคข้อความของคุณคุณสามารถใช้คุณสมบัติรูปแบบสตริงได้ (เหนือ python 2.5) แน่นอนว่า\t
เป็นโทเค็น TAB ในขณะที่วิธีการที่อธิบายไว้จะสร้างช่องว่าง
ตัวอย่าง:
print "{0:30} {1}".format("hi", "yes")
> hi yes
อีกตัวอย่างหนึ่งจัดชิดซ้าย:
print("{0:<10} {1:<10} {2:<10}".format(1.0, 2.2, 4.4))
>1.0 2.2 4.4
ต่อไปนี้เป็นวิธีที่แปลกใหม่ของ Python 3 ในการรับ "hello" TAB "alex" (ทดสอบด้วย Python 3.6.10):
"hello\N{TAB}alex"
"hello\N{tab}alex"
"hello\N{TaB}alex"
"hello\N{HT}alex"
"hello\N{CHARACTER TABULATION}alex"
"hello\N{HORIZONTAL TABULATION}alex"
"hello\x09alex"
"hello\u0009alex"
"hello\U00000009alex"
จริงๆแล้วแทนที่จะใช้ลำดับ Escape คุณสามารถแทรกสัญลักษณ์แท็บลงในลิเทอรัลสตริงได้โดยตรง นี่คือรหัสที่มีอักขระการกำหนดตารางเพื่อคัดลอกและลอง:
"hello alex"
หากแท็บในสตริงด้านบนไม่หายไปไหนระหว่างการคัดลอกสตริงดังนั้น "print (repr (<string from above>)" ควรพิมพ์ "hello \ talex"
ดูเอกสาร Python ตามลำดับสำหรับการอ้างอิง