หนึ่งในฟีเจอร์สุดโกลของ Python คือ string format operator % ตัวดำเนินการนี้เป็นเอกลักษณ์ของ strings และชดเชยการขาดฟังก์ชันจากครอบครัว C's printf() ตัวอย่างง่ายๆ ดังนี้:
ตัวอย่าง
#!/usr/bin/python
print "My name is %s and weight is %d kg!" % ('Zara', 21)
ผลลัพธ์ (Output)
เมื่อรันโค้ดข้างต้น จะได้ผลลัพธ์ดังนี้:
My name is Zara and weight is 21 kg!
นี่คือรายการสัญลักษณ์ชุดสมบูรณ์ที่สามารถใช้ร่วมกับ %:
| ลำดับ | Format Symbol และ Conversion |
|---|---|
| 1 | %c character |
| 2 | %s string conversion ผ่าน str() ก่อนจัดรูปแบบ |
| 3 | %i signed decimal integer |
| 4 | %d signed decimal integer |
| 5 | %u unsigned decimal integer |
| 6 | %o octal integer |
| 7 | %x hexadecimal integer (ตัวอักษรเล็ก) |
| 8 | %X hexadecimal integer (ตัวอักษรใหญ่) |
| 9 | %e exponential notation (กับ 'e' เล็ก) |
| 10 | %E exponential notation (กับ 'E' ใหญ่) |
| 11 | %f floating point real number |
| 12 | %g สั้นกว่าระหว่าง %f และ %e |
| 13 | %G สั้นกว่าระหว่าง %f และ %E |
สัญลักษณ์และฟังก์ชันที่รองรับอื่นๆ รายการในตารางต่อไปนี้:
| ลำดับ | Symbol และ Functionality |
|---|---|
| 1 | * argument ระบุ width หรือ precision |
| 2 | - left justification |
| 3 | + แสดง sign |
| 4 | <sp> เว้นช่องว่างหน้าตัวเลขบวก |
| 5 | # เพิ่ม leading zero โอคตัล ('0') หรือ hexadecimal leading '0x' หรือ '0X' ขึ้นอยู่กับว่าใช้ 'x' หรือ 'X' |
| 6 | 0 pad จากซ้ายด้วยศูนย์ (แทน space) |
| 7 | % '%%' ทิ้งคุณด้วย single literal '%' |
| 8 | (var) mapping variable (dictionary arguments) |
| 9 | m.n. m คือ minimum total width และ n คือจำนวน digits หลังจุดทศนิยม (ถ้ามี) |