Python มีหลายวิธีจัดรูปแบบสตริง: %, {} (.format()/f-string), และ Template บทความนี้เน้น % formatting ซึ่งมาจาก C's printf
Format Specifiers หลัก
| Specifier | ประเภท | ตัวอย่าง |
|---|---|---|
%s | String | "%s" % "hello" → "hello" |
%d / %i | Integer | "%d" % 42 → "42" |
%f | Float | "%f" % 3.14 → "3.140000" |
%x | Hexadecimal | "%x" % 255 → "ff" |
%o | Octal | "%o" % 8 → "10" |
%r | repr() (raw) | "%r" % "hi" → "'hi'" |
ตัวอย่างโค้ด
var = '27'
print('Variable as string = %s' % var) # 27
print('Variable as raw data = %r' % var) # '27'
print('Variable as integer = %i' % int(var)) # 27
print('Variable as float = %f' % float(var)) # 27.000000
print('Variable as hexadecimal = %x' % int(var)) # 1b
print('Variable as octal = %o' % int(var)) # 33
หลายค่า (Tuple)
name = "Jeff Bezos"
age = 58
print("Name: %s, Age: %d" % (name, age))
# Name: Jeff Bezos, Age: 58
ควรทราบ
%เป็นรูปแบบเก่า (legacy) แต่ยังใช้งานได้และพบได้ในโค้ดเก่าเยอะ- Python 3.6+ ควรใช้ f-string (
f"{var}") ซึ่งเร็วกว่า อ่านง่ายกว่า และรองรับ expression ภายใน %sเรียกstr(),%rเรียกrepr()