เทคนิคที่ช่วยในการจัดรูปแบบข้อความและแสดงผลข้อมูลให้อยู่ในรูปแบบที่ต้องการ สามารถทำได้หลายวิธี ดังนี้
การใช้ Percent Formatting (%)
รูปแบบเก่าที่มาจากภาษา C โดยใช้เครื่องหมาย % ในการกำหนดตำแหน่งที่จะใส่ค่าต่าง ๆ
ตัวอย่าง
name = "John"
age = 30
print("My name is %s and I am %d years old." % (name, age))%sสำหรับ string%dสำหรับ integer%fสำหรับ float
ผลลัพธ์
My name is John and I am 30 years old.
การใช้ str.format() Method
รูปแบบนี้ทำให้สามารถกำหนดตำแหน่งของค่าในสตริงได้สะดวกขึ้นโดยใช้วงเล็บปีกกา {} เป็นตำแหน่งที่ใส่ค่า
ตัวอย่าง
name = "Alice"
age = 25
print("My name is {} and I am {} years old.".format(name, age))สามารถใช้การกำหนดตำแหน่งของค่าหรือการจัดรูปแบบเพิ่มเติมได้
print("I have {0} apples and {1} oranges.".format(3, 5)) # ใส่ตำแหน่ง 0, 1ผลลัพธ์
I have 3 apples and 5 oranges.
นอกจากนี้ยังสามารถใช้ชื่อแทนได้
print("My name is {name} and I am {age} years old.".format(name="Tom", age=28))การใช้ f-strings (Formatted String Literals)
รูปแบบนี้เริ่มต้นใน Python 3.6 โดยใส่ค่าตัวแปรโดยตรงในสตริงโดยการนำหน้าด้วยตัว f
ตัวอย่าง
name = "Bob"
age = 40
print(f"My name is {name} and I am {age} years old.")ผลลัพธ์
My name is Bob and I am 40 years old.
นอกจากนี้สามารถใช้การคำนวณและฟังก์ชันภายใน {} ได้เลย
print(f"Next year I will be {age + 1} years old.")การใช้ Template Strings (จากโมดูล string)
เป็นรูปแบบที่ปลอดภัยสำหรับการใช้งานร่วมกับข้อมูลภายนอกหรือข้อมูลจากผู้ใช้ สามารถนำไปใช้ในการสร้างเทมเพลตสำหรับการแสดงผล
ตัวอย่าง
from string import Template
template = Template("My name is $name and I am $age years old.")
result = template.substitute(name="Eve", age=22)
print(result)ผลลัพธ์
My name is Eve and I am 22 years old.
การจัดรูปแบบตัวเลขและทศนิยม
สามารถใช้ f-string หรือ format() เพื่อจัดรูปแบบตัวเลขที่ต้องการแสดงทศนิยมเฉพาะตำแหน่งได้
ตัวอย่าง
pi = 3.14159
print(f"The value of pi is approximately {pi:.2f}") # แสดงทศนิยม 2 ตำแหน่งผลลัพธ์
The value of pi is approximately 3.14
การจัดรูปแบบตามความกว้างและการจัดตำแหน่ง
สามารถจัดตำแหน่งข้อมูลและความกว้างได้โดยใช้ฟังก์ชันในรูปแบบต่าง ๆ เช่น ขวา ซ้าย และกลาง
ตัวอย่าง
print(f"|{'left':<10}|{'center':^10}|{'right':>10}|") # จัดซ้าย กลาง ขวาผลลัพธ์
|left | center | right|
สรุป
%Formatting: รูปแบบเก่า ใช้งานคล้ายภาษา Cstr.format(): รูปแบบที่ยืดหยุ่น สามารถกำหนดตำแหน่งหรือชื่อแทนได้f-strings: รูปแบบที่นิยมใน Python 3.6 ขึ้นไป สะดวกและอ่านง่าย- Template Strings: ใช้งานเมื่อมีความจำเป็นต้องรับข้อมูลจากภายนอกหรือมีความปลอดภัยในการจัดการสตริง
การเลือกใช้แต่ละแบบขึ้นอยู่กับความสะดวกและการใช้งานเฉพาะด้านของผู้พัฒนา
