ใน Python เราสามารถนำข้อมูลชนิด String มาต่อกันด้วยเครื่องหมาย + ได้ แต่เราไม่สามารถนำข้อมูลชนิด String และ Number มาต่อกันด้วยเครื่องหมาย + ได้ เพราะจะทำให้เกิดข้อผิดพลาดทันที
อย่างไรก็ตาม เราสามารถแก้ปัญหาด้วยการใช้เมธอด format() โดยหลักการคร่าว ๆ มีดังนี้
- วางวงเล็บปีกกา
{}ไว้ภายในสตริง เช่นstr = "My score is {}" - เรียกใช้เมธอด
format()โดยส่งอากิวเมนต์เข้าไป เช่นstr.format(score) - เมธอด
format()จะนำค่าที่รับเข้ามาไปแทนที่เครื่องหมายวงเล็บปีกกา{}ที่อยู่ในสตริง และคืนค่าออกมาเป็นสตริงที่สมบูรณ์
str = "My score is {}"
score = 100
print(str.format(score))My score is 100
เมธอด 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))My English score is 100 and my Thai score is 80 so my total score is 180.
แต่ถ้าไม่มั่นใจหรือต้องการความชัวร์ว่าแทรกค่าเข้าไปในสตริงได้ถูกตำแหน่ง สามารถระบุ 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))My English score is 100 and my Thai score is 80 so my total score is 180.
