Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

String Formatting ด้วย % ใน Python

Python มีหลายวิธีจัดรูปแบบสตริง: %, {} (.format()/f-string), และ Template บทความนี้เน้น % formatting ซึ่งมาจาก C's printf

Format Specifiers หลัก

Specifierประเภทตัวอย่าง
%sString"%s" % "hello" → "hello"
%d / %iInteger"%d" % 42 → "42"
%fFloat"%f" % 3.14 → "3.140000"
%xHexadecimal"%x" % 255 → "ff"
%oOctal"%o" % 8 → "10"
%rrepr() (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()