ในการแปลง (รูปแบบ) ตัวเลขหรือสตริงเป็นรูปแบบต่างๆ ใน Python ให้ใช้ฟังก์ชัน format() ในตัวหรือวิธีสตริง str.format()
ในส่วนนี้ เราจะอธิบายวิธีการใช้ฟังก์ชันต่อไปนี้
- ฟังก์ชันในตัว (เช่น ในภาษาโปรแกรม)
format()
- วิธีสตริง
str.format()
นอกจากนี้ สตริงข้อมูลจำเพาะรูปแบบสำหรับการแปลงเป็นรูปแบบต่อไปนี้จะอธิบายด้วยโค้ดตัวอย่าง
- จัดชิดซ้าย จัดกึ่งกลาง จัดชิดขวา
- เติมศูนย์
- เครื่องหมาย (บวกหรือลบ)
- ตัวคั่นหลัก (จุลภาค, ขีดล่าง)
- เลขฐานสอง ฐานแปด และฐานสิบหก
- ระบุจำนวนหลักหลังจุดทศนิยม
- ตัวเลขที่มีนัยสำคัญ (จำนวนหลักสำคัญ)
- สัญกรณ์เลขชี้กำลัง
- เปอร์เซ็นต์การแสดงผล
โปรดทราบว่าตั้งแต่ Python 3.6 f-strings (f-strings) ได้ถูกเพิ่มเข้าไปในเมธอด string str.format() เพื่อให้กระชับยิ่งขึ้น
ฟังก์ชั่นในตัว: รูปแบบ ()
format() เป็นฟังก์ชันมาตรฐานในตัวของ Python
เค้าร่างเป็นดังนี้.
format(value, format_spec)
- อาร์กิวเมนต์แรก: the
value
ค่าเดิม. สตริง str, จำนวน int, ทุ่น ฯลฯ - อาร์กิวเมนต์ที่สอง
format_spec
จัดรูปแบบสตริงข้อกำหนด สตริง str - ส่งคืนค่า: สตริงที่จัดรูปแบบ str
- อาร์กิวเมนต์แรก: the
ตัวอย่างแสดงอยู่ด้านล่าง ประเภทของสตริงรูปแบบและวิธีการเขียนจะอธิบายในภายหลัง
ในตัวอย่างนี้ เราได้ใช้ตัวอักษรตัวเลขและตัวอักษรสตริงเป็นอาร์กิวเมนต์แรก แต่แน่นอนว่า คุณสามารถใช้ตัวแปรที่มีค่าเหล่านี้ได้
s = format(255, '04x')
print(s)
print(type(s))
# 00ff
# <class 'str'>
print(format('center', '*^16'))
# *****center*****
วิธีสตริง str.format()
นอกจากนี้ยังมีเมธอด format() สำหรับประเภทสตริง str
{} ในสตริง str ที่เรียกใช้เมธอด format() เรียกว่าฟิลด์การแทนที่ และถูกแทนที่ด้วยอาร์กิวเมนต์ของเมธอด format()
ควรเขียนสตริงข้อกำหนดรูปแบบในฟิลด์การแทนที่ {} ตามด้วย “:”
ค่าที่ส่งกลับเป็นสตริงที่จัดรูปแบบ str
กระบวนการที่เทียบเท่ากับรูปแบบฟังก์ชันในตัว () ที่อธิบายไว้ข้างต้นมีดังนี้
s = '{:04x}'.format(255)
print(s)
print(type(s))
# 00ff
# <class 'str'>
print('{:*^16}'.format('center'))
# *****center*****
อีกครั้ง เราใช้ตัวอักษรตัวเลขและตัวอักษรสตริงเป็นอาร์กิวเมนต์ แต่แน่นอนว่าตัวแปรก็เป็นที่ยอมรับเช่นกัน
การระบุอาร์กิวเมนต์สำหรับฟิลด์การแทนที่
ระบุอาร์กิวเมนต์ตามลำดับ (ค่าเริ่มต้น)
สามารถมีฟิลด์ทดแทนได้หลายฟิลด์ {} และโดยค่าเริ่มต้น อาร์กิวเมนต์ของเมธอดจะได้รับการประมวลผลตามลำดับ หากละเว้นสตริงข้อกำหนดรูปแบบใน {} สตริงนั้นจะถูกแปลงเป็นสตริงโดย str()
มีประโยชน์สำหรับการแทรกค่าตัวแปรในสตริงและพิมพ์ออกมา
print('{}-{}-{}'.format('100', '二百', 300))
# 100-二百-300
ระบุอาร์กิวเมนต์ตำแหน่งสำหรับค่าจำนวนเต็ม
หากระบุค่าจำนวนเต็มใน {} เช่น {0} หรือ {1} ผลลัพธ์จะขึ้นอยู่กับลำดับของอาร์กิวเมนต์ เบอร์เดิมใช้ซ้ำได้ สิ่งนี้มีประโยชน์เมื่อคุณต้องการแทรกค่าเดียวกันในสตริง
print('{0}-{1}-{0}'.format('foo', 'bar'))
# foo-bar-foo
ระบุอาร์กิวเมนต์ของคีย์เวิร์ดสำหรับชื่อที่กำหนดเอง (สตริง)
คุณยังสามารถระบุชื่อใดๆ ใน {} และป้อนเป็นอาร์กิวเมนต์ของคำหลักได้
print('{day}/{month}/{year}/'.format(day=11, month=1, year=2018))
# 11/1/2018
ระบุรายการหรือพจนานุกรมเป็นอาร์กิวเมนต์
รายการและพจนานุกรมสามารถระบุเป็นอาร์กิวเมนต์ได้
ใช้ [] เพื่อระบุดัชนีของรายการหรือคีย์ของพจนานุกรมในช่องการแทนที่ โปรดทราบว่าเครื่องหมายอัญประกาศ “‘” และ “” ไม่ได้ใช้เพื่อระบุคีย์พจนานุกรม
หากคุณต้องการใช้อาร์กิวเมนต์เดียวกันซ้ำๆ คุณต้องระบุค่าจำนวนเต็มหรือสตริง (ชื่อ) ตามที่อธิบายไว้ข้างต้น
l = ['one', 'two', 'three']
print('{0[0]}-{0[1]}-{0[2]}'.format(l))
# one-two-three
d1 = {'name': 'Alice', 'age': 20}
d2 = {'name': 'Bob', 'age': 30}
print('{0[name]} is {0[age]} years old.\n{1[name]} is {1[age]} years old.'.format(d1, d2))
# Alice is 20 years old.
# Bob is 30 years old.
สามารถขยายเป็นอาร์กิวเมนต์ตำแหน่งได้โดยการต่อท้าย * ในรายการและระบุเป็นอาร์กิวเมนต์ หรือเป็นอาร์กิวเมนต์ของคีย์เวิร์ดโดยผนวก ** ลงในพจนานุกรมและระบุเป็นอาร์กิวเมนต์
l = ['one', 'two', 'three']
print('{}-{}-{}'.format(*l))
# one-two-three
d = {'name': 'Alice', 'age': 20}
print('{name} is {age} years old.'.format(**d))
# Alice is 20 years old.
คำอธิบายของวงเล็บปีกกา {}
หากคุณต้องการเขียนวงเล็บปีกกา {,} ในเมธอด format() ให้ทำซ้ำสองครั้งเช่น {{,}} โปรดทราบว่าแบ็กสแลชไม่สามารถหลีกเลี่ยงได้
print('{{}}-{num}-{{{num}}}'.format(num=100))
# {}-100-{100}
สตริงที่จัดรูปแบบ
ในทั้งสองกรณี หากต้องการระบุรูปแบบ ให้เขียน “:format string” หลังค่าจำนวนเต็มหรือสตริงชื่อใน {}
print('{num:x}'.format(num=255))
# ff
print('{day}/{month:02}/{year:02}/'.format(day=11, month=1, year=2018))
# 11/01/2018
ต่อไปนี้ เราจะอธิบายวิธีระบุรูปแบบโดยใช้สตริงรูปแบบ โค้ดตัวอย่างใช้วิธีสตริง str.format() แต่สตริงรูปแบบเดียวกันสามารถใช้กับฟังก์ชัน format() ที่มีอยู่แล้วภายในได้ ในฟังก์ชัน format() ในตัว สตริงข้อมูลจำเพาะของรูปแบบจะถูกระบุเป็นอาร์กิวเมนต์ที่สอง
จัดชิดซ้าย จัดกึ่งกลาง จัดชิดขวา
คุณสามารถจัดชิดซ้าย ชิดกึ่งกลาง ชิดขวา ฯลฯ ด้านล่าง ระบุจำนวนอักขระทั้งหมดเป็นตัวเลข
<
^
>
print('left : {:<10}'.format(100))
print('center: {:^10}'.format(100))
print('right : {:>10}'.format(100))
# left : 100
# center: 100
# right : 100
คุณยังสามารถระบุอักขระที่จะกรอกได้ หากไม่ระบุ จะเป็นการเว้นวรรค ดังในตัวอย่างด้านบน
คุณสามารถใช้อักขระแบบไบต์คู่ได้ตราบเท่าที่เป็นอักขระตัวเดียว
print('left : {:*<10}'.format(100))
print('center: {:a^10}'.format(100))
print('right : {:鬼>10}'.format(100))
# left : 100*******
# center: aaa100aaaa
# right : 鬼鬼鬼鬼鬼鬼鬼100
การให้เหตุผลด้วย > ไม่คำนึงถึงเครื่องหมาย (-,+) หากคุณใช้ = เครื่องหมายจะตามด้วยอักขระที่ระบุ หากต้องการระบุ + ให้เขียน + หลัง = รายละเอียดของการประมวลผลสัญญาณจะอธิบายในภายหลัง
print('sign: {:0>10}'.format(-100))
print('sign: {:0=10}'.format(-100))
print('sign: {:0=+10}'.format(100))
# sign: 000000-100
# sign: -000000100
# sign: +000000100
<, ^ และ > สามารถระบุสตริงได้ แต่ = จะทำให้เกิดข้อผิดพลาด ValueError หากคุณต้องการใช้ = สำหรับสตริง คุณต้องแปลงเป็นตัวเลขโดยใช้ int()
# print('sign: {:0=10}'.format('-100'))
# ValueError: '=' alignment not allowed in string format specifier
print('sign: {:0=10}'.format(int('-100')))
# sign: -000000100
เช่นเดียวกับตัวเลขทศนิยม จุดทศนิยมจะนับเป็นอักขระด้วย
print('left : {:*<10}'.format(1.23))
print('center: {:a^10}'.format(1.23))
print('right : {:鬼>10}'.format(1.23))
# left : 1.23******
# center: aaa1.23aaa
# right : 鬼鬼鬼鬼鬼鬼1.23
print('sign: {:0>10}'.format(-1.23))
print('sign: {:0=10}'.format(-1.23))
print('sign: {:0=+10}'.format(1.23))
# sign: 00000-1.23
# sign: -000001.23
# sign: +000001.23
รายการ ทูเพิล ฯลฯ จะทำให้เกิดข้อผิดพลาดหากระบุไว้ตามที่เป็นอยู่ และสามารถแปลงเป็นสตริงได้โดยใช้ str()
l = [0, 1]
print(type(l))
# <class 'list'>
# print('{:*^16}'.format(l))
# TypeError: unsupported format string passed to list.__format__
print(type(str(l)))
# <class 'str'>
print('{:*^16}'.format(str(l)))
# *****[0, 1]*****
สำหรับการจัดชิดซ้าย จัดกึ่งกลาง และจัดชิดขวา ยังมีวิธีสตริงเฉพาะที่เรียกว่า ljust(), center() และ rjust()
0 เติม
หากคุณต้องการปรับจำนวนหลักโดยการเติมศูนย์ ให้ตั้งค่าอักขระที่จะเติมเป็น 0 และปรับให้เหมาะสม
ในกรณีของการเติมเป็นศูนย์ หากละเว้นสัญลักษณ์การจัดตำแหน่ง ระบบจะประมวลผลราวกับว่า = ถูกระบุ
print('zero padding: {:0=10}'.format(100))
print('zero padding: {:010}'.format(100))
# zero padding: 0000000100
# zero padding: 0000000100
print('zero padding: {:0=10}'.format(-100))
print('zero padding: {:010}'.format(-100))
# zero padding: -000000100
# zero padding: -000000100
#ข้อผิดพลาด!
# print('zero padding: {:010}'.format('-100'))
# ValueError: '=' alignment not allowed in string format specifier
สำหรับการเติมศูนย์ ยังมีเมธอดสตริงเฉพาะที่เรียกว่า zfill()
เครื่องหมาย (บวกหรือลบ)
ตามค่าเริ่มต้น เฉพาะตัวเลขติดลบเท่านั้นที่มีเครื่องหมาย (ลบ-)
เมื่อเพิ่ม + ลงในสตริงข้อกำหนดการจัดรูปแบบ เครื่องหมาย (บวก +) จะแสดงเป็นจำนวนบวกด้วย หากมีการเว้นวรรค จะมีการเว้นวรรคที่จุดเริ่มต้นของจำนวนบวก และจำนวนหลักจะสอดคล้องกับจำนวนลบ
print('sign: {}'.format(100))
print('sign: {}'.format(-100))
# sign: 100
# sign: -100
print('sign: {:+}'.format(100))
print('sign: {:+}'.format(-100))
# sign: +100
# sign: -100
print('sign: {: }'.format(100))
print('sign: {: }'.format(-100))
# sign: 100
# sign: -100
โปรดใช้ความระมัดระวังเมื่อเติมด้วยอักขระที่กำหนดเอง เช่น การเติมศูนย์ที่กล่าวถึงข้างต้น ค่าดีฟอลต์ที่ไม่มี + และไม่มีการเว้นวรรค จะเติมตัวเลขบวกด้วยอักขระอีกตัวหนึ่ง
print('sign: {:06}'.format(100))
print('sign: {:06}'.format(-100))
# sign: 000100
# sign: -00100
print('sign: {:+06}'.format(100))
print('sign: {:+06}'.format(-100))
# sign: +00100
# sign: -00100
print('sign: {: 06}'.format(100))
print('sign: {: 06}'.format(-100))
# sign: 00100
# sign: -00100
หากใช้สัญลักษณ์การจัดตำแหน่ง ควรเขียนสัญลักษณ์การจัดตำแหน่งหลังสัญลักษณ์การจัดตำแหน่ง
print('sign: {:_>6}'.format(100))
print('sign: {:_>6}'.format(-100))
# sign: ___100
# sign: __-100
print('sign: {:_>+6}'.format(100))
print('sign: {:_>+6}'.format(-100))
# sign: __+100
# sign: __-100
print('sign: {:_> 6}'.format(100))
print('sign: {:_> 6}'.format(-100))
# sign: __ 100
# sign: __-100
ตัวคั่นหลัก (จุลภาค, ขีดล่าง)
เพิ่มเครื่องหมายจุลภาคหรือขีดล่าง _ ตัวคั่นทุก ๆ สามหลัก ทำให้อ่านตัวเลขจำนวนมากได้ง่ายขึ้น โปรดทราบว่าขีดล่าง_ เป็นตัวเลือกที่เพิ่มใน Python 3.6 ดังนั้นจึงไม่สามารถใช้ในเวอร์ชันก่อนหน้าได้
print('{:,}'.format(100000000))
# 100,000,000
print('{:_}'.format(100000000))
# 100_000_000
ในกรณีของประเภททศนิยมแบบทศนิยม เฉพาะส่วนจำนวนเต็มเท่านั้นที่คั่นด้วย
print('{:,}'.format(1234.56789))
# 1,234.56789
เลขฐานสอง ฐานแปด และฐานสิบหก
แปลงค่าตัวเลขเป็นเลขฐานสอง ฐานแปด และเลขฐานสิบหกสำหรับเอาต์พุต
b
: ไบนารี่o
: Octald
: ทศนิยมx
,X
: เลขฐานสิบหก (ตัวพิมพ์ใหญ่เป็นตัวพิมพ์ใหญ่)
print('bin: {:b}'.format(255))
print('oct: {:o}'.format(255))
print('dec: {:d}'.format(255))
print('hex: {:x}'.format(255))
print('HEX: {:X}'.format(255))
# bin: 11111111
# oct: 377
# dec: 255
# hex: ff
# HEX: FF
นอกจากนี้ยังสามารถใช้ร่วมกับการเติม 0 และมักใช้เพื่อจัดตำแหน่งตัวเลขในรูปแบบเลขฐานสองและเลขฐานสิบหก
print('bin: {:08b}'.format(255))
print('oct: {:08o}'.format(255))
print('dec: {:08d}'.format(255))
print('hex: {:08x}'.format(255))
print('HEX: {:08X}'.format(255))
# bin: 11111111
# oct: 00000377
# dec: 00000255
# hex: 000000ff
# HEX: 000000FF
โปรดทราบว่าต้องระบุจำนวนอักขระเติมศูนย์โดยคำนึงถึงคำนำหน้า
print('bin: {:#010b}'.format(255))
print('oct: {:#010o}'.format(255))
print('dec: {:#010d}'.format(255))
print('hex: {:#010x}'.format(255))
print('HEX: {:#010X}'.format(255))
# bin: 0b11111111
# oct: 0o00000377
# dec: 0000000255
# hex: 0x000000ff
# HEX: 0X000000FF
สำหรับเลขฐานสองและเลขฐานสิบหก สามารถแทรกได้เฉพาะตัวคั่นขีดล่าง _ หลัก (Python 3.6 หรือใหม่กว่า) ใช้ตัวคั่น 4 หลัก จำนวนอักขระที่เติมศูนย์จะต้องคำนึงถึงจำนวนขีดล่างด้วย
print('hex: {:08x}'.format(255))
print('hex: {:09_x}'.format(255))
print('hex: {:#011_x}'.format(255))
# hex: 000000ff
# hex: 0000_00ff
# hex: 0x0000_00ff
เฉพาะ int ชนิดจำนวนเต็มเท่านั้นที่สามารถแปลงรูปแบบเป็นเลขฐานสองหรือเลขฐานสิบหก คุณสามารถใช้ int() เพื่อแปลงเป็นตัวเลข
# print('hex: {:08x}'.format('255'))
# ValueError: Unknown format code 'X' for object of type 'str'
print('hex: {:08x}'.format(int('255')))
# hex: 000000ff
ระบุจำนวนหลักหลังจุดทศนิยม
ในการระบุจำนวนหลักหลังจุดทศนิยม ให้ทำดังนี้: n คือจำนวนหลัก จำนวนหลักหลังจุดทศนิยมจะกลายเป็นจำนวนหลักที่ระบุโดยไม่คำนึงถึงจำนวนหลักในส่วนจำนวนเต็ม.[n]f
print('{:.2f}'.format(123.456))
print('{:.5f}'.format(123.456))
print('{:.3f}'.format(0.0001234))
# 123.46
# 123.45600
# 0.000
ด้านซ้ายของจุดทศนิยมสามารถระบุเป็นแบบชิดซ้าย ชิดกึ่งกลาง ชิดขวา หรือเติมศูนย์ตามที่อธิบายไว้ข้างต้น หากจำนวนหลักของค่าเป้าหมายมากกว่าจำนวนที่ระบุ จะไม่มีอะไรเกิดขึ้น หากจำนวนหลักในค่าเป้าหมายมากกว่าจำนวนหลักที่ระบุ จะไม่มีการดำเนินการใดๆ
print('{:>12.5f}'.format(123.456))
print('{:012.5f}'.format(123.456))
print('{:06.5f}'.format(123.456))
# 123.45600
# 000123.45600
# 123.45600
หากคุณระบุจำนวนหลักน้อยกว่าจำนวนหลักเดิมหลังจุดทศนิยม ค่าจะถูกปัดเศษ โปรดทราบว่านี่ไม่ใช่การปัดเศษเป็นจำนวนเต็มที่ใกล้เคียงที่สุด แต่เป็นจำนวนคู่ เช่น 0.5 ถูกปัดเศษเป็น 0
print('{:.0f}'.format(0.4))
print('{:.0f}'.format(0.5))
print('{:.0f}'.format(0.6))
# 0
# 0
# 1
หากคุณต้องการใช้การปัดเศษทั่วไป คุณสามารถใช้เมธอด quantize() ของทศนิยมไลบรารีมาตรฐานได้
สัญกรณ์เลขชี้กำลัง
เมื่อแปลงจำนวนทศนิยมจุดลอยตัวเป็นสตริง str มันจะถูกเขียนโดยอัตโนมัติในรูปแบบเลขชี้กำลังขึ้นอยู่กับจำนวนหลัก ชนิดจำนวนเต็ม int ไม่ได้
print('{}'.format(0.0001234))
print('{}'.format(0.00001234))
# 0.0001234
# 1.234e-05
print('{}'.format(1234000000000000.0))
print('{}'.format(12340000000000000.0))
print('{}'.format(12340000000000000000000000))
# 1234000000000000.0
# 1.234e+16
# 12340000000000000000000000
หากคุณระบุ e หรือ E ในสตริงข้อกำหนดการจัดรูปแบบ คุณสามารถแปลงเป็นสัญลักษณ์เอ็กซ์โพเนนเชียลได้เสมอ อักขระที่ใช้ในเอาต์พุตจะเป็น e และ E ตามลำดับ
print('{:e}'.format(0.0001234))
print('{:E}'.format(0.0001234))
# 1.234000e-04
# 1.234000E-04
นอกจากนี้ยังสามารถระบุจำนวนหลักหลังจุดทศนิยมได้อีกด้วย ส่วนจำนวนเต็มจะเป็นตัวเลขหนึ่งหลักเสมอ และจุดทศนิยมจะเป็นจำนวนหลักที่ระบุ
print('{:.5e}'.format(0.0001234))
print('{:.2E}'.format(0.0001234))
# 1.23400e-04
# 1.23E-04
print('{:.5e}'.format(987.65))
print('{:.2E}'.format(987.65))
# 9.87650e+02
# 9.88E+02
โปรดทราบว่าหากคุณระบุชิดซ้าย ชิดกึ่งกลาง ชิดขวา หรือเติมศูนย์ e-, E+ ฯลฯ จะนับเป็นตัวเลข (อักขระ) ด้วย
print('{:>12.5e}'.format(987.65))
print('{:012.2E}'.format(987.65))
# 9.87650e+02
# 00009.88E+02
ตัวเลขที่มีนัยสำคัญ (จำนวนหลักสำคัญ)
คุณสามารถระบุจำนวนหลักโดยรวมได้โดยทำดังนี้ ขึ้นอยู่กับผลลัพธ์ สัญกรณ์เลขชี้กำลังจะถูกใช้โดยอัตโนมัติ โปรดทราบว่าศูนย์ที่ต่อท้ายหลังจากจุดทศนิยมจะถูกละเว้น.[n]g
print('{:.2g}'.format(123.456))
print('{:.3g}'.format(123.456))
print('{:.8g}'.format(123.456))
print('{:.3g}'.format(0.0001234))
# 1.2e+02
# 123
# 123.456
# 0.000123
หากคุณละเว้น g ผลลัพธ์จะไม่ใช่จำนวนเต็ม g จะเหมือนกันในกรณีส่วนใหญ่ แต่ในกรณีที่ผลลัพธ์เป็นจำนวนเต็มเท่านั้น
print('{:.2}'.format(123.456))
print('{:.3}'.format(123.456))
print('{:.8}'.format(123.456))
print('{:.3}'.format(0.0001234))
# 1.2e+02
# 1.23e+02
# 123.456
# 0.000123
หากเราประมวลผลค่าเท่ากัน เราจะได้ค่าต่อไปนี้ตามลำดับ
print('{:.3f}'.format(123.456))
print('{:.3e}'.format(123.456))
print('{:.3g}'.format(123.456))
print('{:.3}'.format(123.456))
# 123.456
# 1.235e+02
# 123
# 1.23e+02
print('{:.8f}'.format(123.456))
print('{:.8e}'.format(123.456))
print('{:.8g}'.format(123.456))
print('{:.8}'.format(123.456))
# 123.45600000
# 1.23456000e+02
# 123.456
# 123.456
ในกรณีของ g หรือถ้าละไว้ ศูนย์ที่ต่อท้ายหลังจากจุดทศนิยมจะถูกละเว้น ดังนั้น หากคุณต้องการให้ผลลัพธ์เป็นตัวเลขที่มีนัยสำคัญเท่ากัน (จำนวนหลักที่มีนัยสำคัญ) ให้ใช้สัญกรณ์เลขชี้กำลังของ e หรือ E ส่วนของจำนวนเต็มจะเป็นตัวเลขหนึ่งหลักเสมอ และจุดทศนิยมคือจำนวนหลักที่ระบุ ดังนั้นหากคุณต้องการแสดงตัวเลขนัยสำคัญ n หลัก ให้ระบุ n-1
print('{:.4e}'.format(123.456))
print('{:.4e}'.format(0.000012345))
print('{:.4e}'.format(12))
# 1.2346e+02
# 1.2345e-05
# 1.2000e+01
เปอร์เซ็นต์การแสดงผล
หากระบุ % ในสตริงข้อกำหนดการจัดรูปแบบ ค่าของจำนวนทศนิยมหรือ int จะถูกคูณด้วย 100 และแปลงเป็นสตริงด้วย %
นอกจากนี้ยังสามารถระบุจำนวนหลักหลังจุดทศนิยมได้อีกด้วย ค่าเริ่มต้นคือหกหลักหลังจุดทศนิยม ชิดซ้าย จัดกึ่งกลาง จัดชิดขวา และเติมศูนย์ % จะถูกนับเป็นอักขระด้วย
print('{:%}'.format(0.12345))
print('{:.2%}'.format(0.12345))
# 12.345000%
# 12.35%
print('{:%}'.format(10))
print('{:.2%}'.format(10))
# 1000.000000%
# 1000.00%
print('{:>7.2%}'.format(0.12345))
print('{:07.2%}'.format(0.12345))
# 12.35%
# 012.35%