
เขียนโปรแกรมภาษา 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))
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.