Python ตอนที่ 18 การจัดรูปแบบข้อมูลชนิด String

ใน Python เราสามารถนำข้อมูลชนิด String มาต่อกันด้วยเครื่องหมาย + ได้ แต่เราไม่สามารถนำข้อมูลชนิด String และ Number มาต่อกันด้วยเครื่องหมาย + ได้ เพราะจะทำให้เกิดข้อผิดพลาดทันที

อย่างไรก็ตาม เราสามารถแก้ปัญหาด้วยการใช้เมธอด format() โดยหลักการคร่าว ๆ มีดังนี้

  • วางวงเล็บปีกกา {} ไว้ภายในสตริง เช่น str = "My score is {}"
  • เรียกใช้เมธอด format() โดยส่งอากิวเมนต์เข้าไป เช่น str.format(score)
  • เมธอด format() จะนำค่าที่รับเข้ามาไปแทนที่เครื่องหมายวงเล็บปีกกา {} ที่อยู่ในสตริง และคืนค่าออกมาเป็นสตริงที่สมบูรณ์
str = "My score is {}"

score = 100

print(str.format(score))

เมธอด format() สามารถรับอากิวเมนต์ได้ไม่จำกัด ดังนั้น เราจะนำข้อมูลอื่น ๆ ทั้งตัวเลขและตัวอักษรเข้ามาแทรกในสตริงเท่าไหร่ก็ได้ โดยการวางวงเล็บปีกกา {} ไว้ ณ ตำแหน่งที่ต้องการแทรกค่าในสตริง ที่สำคัญคือ เวลาผ่านอากิวเมนต์เข้าไป ต้องเรียงลำดับให้ถูก

str = "My English score is {} and my Thai score is {} so my total score is {}."

eng = 100
tha = 80

print(str.format(eng, tha, eng+tha))

แต่ถ้าไม่มั่นใจหรือต้องการความชัวร์ว่าแทรกค่าเข้าไปในสตริงได้ถูกตำแหน่ง สามารถระบุ Index (เริ่มจาก 0) ไว้ภายในวงเล็บปีกกาได้ เพื่อเป็นการบอกว่า ตรงนี้ให้เอาค่าจากอากิวเมนต์ตัวที่เท่านี้มาแทรก เช่น

str = "My English score is {2} and my Thai score is {1} so my total score is {0}."

eng = 100
tha = 80

print(str.format(eng+tha, tha, eng))