
เขียนโปรแกรมภาษา Python ตอนที่ 52 จัดรูปแบบข้อความ ด้วยเมธอด format()
เมธอด format()
เป็นเมธอดของสตริง ใช้สำหรับจัดรูปแบบการแสดงผลของสตริงที่กำหนด ซึ่งเมื่อจะนำไปแสดงผล ต้องแสดงผลใน placeholder ซึ่งจะถูกกำหนดไว้ภายในเครื่องหมาย curly brackets {}
ดังนี้ {price:.2f}
รูปแบบการใช้งานเมธอด format()
string.format(value1, value2...)
- value1, value2… คือ ค่าที่สามารถนำไปจัดรูปแบบและแทรกลงในสตริงได้ สามารถมีได้หลายค่า โดยขั้นด้วยเครื่องหมายคอมมา (
,
) ซึ่งค่าที่กำหนดนี้อาจเป็นตัวเลข หรือข้อมูลแบบ key=value list หรือข้อมูลชนิดอื่น ๆ ก็ได้
placeholder ตำแหน่งที่จะใช้แสดงค่าที่จะจัดรูปแบบ
placeholder คือตำแหน่งที่เราจะจองไว้สำหรับการแทรกค่าที่นำมาจัดรูปแบบ ซึ่งจะถูกกำกับด้วยเครื่องหมาย {}
ซึ่งอาจจะเป็นชื่อตัวแปร เช่น {price}
, และอินเด็กซ์ เช่น {0}
, placeholders เปล่า ๆ แบบนี้ {}
ก็ได้เช่นกัน
ตัวอย่างการใช้งานเมธอด format() รูปแบบต่าง ๆ
mytext = "My name is {name}, I'am {age} years old.".format(name = "Nai", age = 35) print(mytext)
My name is Nai, I’am 35 years old.
จากตัวอย่าง เราสร้าง placeholder ไว้ในสตริง 2 ตัว คือ {name}
และ {age}
หลังจากนั้นใช้เมธอด format()
เพื่อนำค่าที่ต้องการไปวางใน placeholder ที่เตรียมไว้ โดยระบุพารามิเตอร์ 2 ตัว ตามจำนวน placeholder ที่เตรียมไว้ ดังนี้
name = "Nai", age = 35
จากโค้ดตัวอย่างนั้น ค่า “Nai” จะถูกนำไปแทรกแทนที่ {name}
เพราะมีเชื่อเหมือนกันกับคีย์ name ( name = "Nai"
) ส่วนค่า 35 จะถูกนำไปแทนที่ {age}
ด้วยเหตุผลเดียวกัน
mytext = "My name is {0}, I'am {1} years old.".format("Nai", 35) print(mytext)
My name is Nai, I’am 35 years old.
จากโค้ดตัวอย่างด้านบน พารามิเตอร์ตัวที่ 1 คือ “Nai” จะถูกตำไปแทนที่ {0}
เพราะเป็น placeholder ลำดับที่ 1 ส่วนพารามิเตอร์ตัวที่ 2 คือ 35 จะถูกนำไปแทนที่ {1}
ตามลำดับหมายเลขอินเด็กซ์
mytext = "My name is {}, I'am {} years old.".format("Nai", 35) print(mytext)
My name is Nai, I’am 35 years old.
จากโค้ดตัวอย่างด้านบน เราไม่ได้ระบุหมายเลขอินเด็กซ์กำกับ placeholder ดังนั้น placeholder ไหนอยู่ก่อน จะถือว่าอันนั้นเป็นอันแรก เมื่อเป็นเช่นนี้ ทั้ง 2 ตัว คือ “Nai” และ 35 จะถูกนำไปแทนที่ placeholder ทั้งสองตำแหน่งตามลำดับการวางก่อนหลัง
การจัดรูปแบบจุดทศนิยมให้ตัวเลข
เราสามารถจัดรูปแบบการแสดงผลให้กับสตริงใน placeholder ได้ เช่น หากต้องการให้แสดงตัวเลขเป็นตัวเลขทศนิยม 2 ตำแหน่ง ให้ใส่เครื่องหมาย :
ตามด้วย .
ตามด้วยตัวเลขกำหนดทศนิยม ตามด้วยตัอักษร f
หลังชื่อ placeholder ซึ่งจะได้ดังนี้ {price:.2f}
ดังโค้ดตัวอย่าง
mytext = "Price of this product is {price:.2f} dollars" print(mytext.format(price = 50))
Price of this product is 50.00 dollars