Python ตอนที่ 54 กำหนดขนาด Tab ในสตริง ด้วยเมธอด expandtabs()

โดยปกติ เมื่อต้องการแทรกแท็บ (Tab) ในสตริง เราสามารถทำได้โดยการแทรกอักขระพิเศษ "\t" เข้าไปในสตริงได้เลย ดังนี้

mytext = "P\tY\tT\tH\tO\tN"

print(mytext)
# 'P	Y	T	H	O	N'

จากโค้ด ได้ทำการแทรก '\t' ไว้ระหว่างตัวอักษรทุกตัว ทำให้เมื่อแสดงผลลัพธ์ออกมา จะมีการแทรกแท็บ (Tab) ระหว่างตัวอักษรทุกตัว

เมธอด expandtabs() เป็นเมธอดของสตริง ใช้สำหรับกำหนดขนาดของแท็บ (Tab) ที่ถูกแทรกเข้าไปในสตริงโดยการใช้อักขระ "\t" อีกที มีรูปแบบการใช้งานดังนี้

 string.expandtabs(tabsize)    
  • tabsize คือ ตัวเลขสำหรับระบุขนาดแท็บ (จะระบุหรือไม่ก็ได้) ถ้าไม่ระบุ ค่าเริ่มต้นจะเป็น 8

ตัวอย่างการใช้งานเมธอด expandtabs()

mytext = "P\tY\tT\tH\tO\tN"

print(mytext)
# 'P	Y	T	H	O	N'

print(mytext.expandtabs())
# 'P       Y       T       H       O       N'
  • บรรทัดที่ 1 กำหนดสตริง โดยมีการแทรกอักขระ "\t" เพื่อแทรกแท็บระหว่างตัวอักษรทุกตัวในสตริง
  • บรรทัดที่ 3 สั่งแสดงผลสตริงออกมาโดยไม่ใช้เมธอด expandtabs()
  • บรรทัดที่ 6 สั่งแสดงผลสตริงออกมาโดยใช้เมธอด expandtabs() โดยไม่ได้ระบุ พารามมิเตอร์ tabsize (tabsize จะเป็น 8 โดยค่าตั้งต้น)

จะเห็นได้ว่า ผลลัพธ์ของทั้ง 2 คำสั่งจะต่างกัน

ตัวอย่างการใช้งานเมธอด expandtabs() แบบระบุพารามิเตอร์ tabsize

mytext = "P\tY\tT\tH\tO\tN"

print(mytext.expandtabs(2))
# 'P Y T H O N'

print(mytext.expandtabs(5))
# 'P    Y    T    H    O    N'

print(mytext.expandtabs(8))
# 'P       Y       T       H       O       N'
  • บรรทัดที่ 3 ใช้เมธอด expandtabs() โดยระบุพารามิเตอร์เป็น 2
  • บรรทัดที่ 6 ใช้เมธอด expandtabs() โดยระบุพารามิเตอร์เป็น 5
  • บรรทัดที่ 9 ใช้เมธอด expandtabs() โดยระบุพารามิเตอร์เป็น 8

ผลลัพธ์ที่ได้จะแตกต่างกันออกไป ตามค่าพารามิเตอร์ที่ระบุ

การใช้เมธอด expandtabs() โดยระบุพารามิเตอร์ จะมีผลให้มีการแทรกช่องว่าง (space) ตามจำนวนพารามิเตอร์ – 1 ตามด้วยตัวอักษรตัวถัดไป เช่น

  • ถ้าระบุพารามิเตอร์ (tabsize) เป็น 2 จะเป็นการแทรกช่องว่าง (space) 1 ครั้ง ตามด้วยตัวอักษรตัวถัดไป
  • ถ้าระบุพารามิเตอร์ (tabsize) เป็น 5 จะเป็นการแทรกช่องว่าง (space) 4 ครั้ง ตามด้วยตัวอักษรตัวถัดไป
  • ถ้าระบุพารามิเตอร์ (tabsize) เป็น 8 จะเป็นการแทรกช่องว่าง (space) 7 ครั้ง ตามด้วยตัวอักษรตัวถัดไป