基本格式
{字段名!轉換字段:格式說明符}
字段名:省略;數字;變量名
'name is {}, age is {}'.format('peter',25)
'name is {1}, age is {0}'.format(25, 'peter')
'name is {name}, age is {age}'.format(name='peter',age='25')
轉換字段: !s !r !a
s:傳遞參數之前先對參數調用 str()
r:傳遞參數之前先對參數調用 repr()
a:傳遞參數之前先對參數調用 ascii()
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return 'Person({0.name!r}, {0.age!r})'.format(self)
def __str__(self):
return '({0.name!s}, {0.age!s})'.format(self)
person = Person('peter', 25)
'this person is {!r}'.format(person)
'this person is {!s}'.format(person)
'this person is {!a}'.format('皮特')
# result
"this person is Person('peter', 25)"
'this person is (peter, 25)'
"this person is '\\u76ae\\u7279'"
格式說明符
填充與對齊 :[填充字符][對齊方式 <^>][寬度]
'{:*>10}'.format(10) # 右對齊 '********10'
'{:*<10}'.format(10) # 左對齊 '10********'
'{:*^10}'.format(10) # 居中對齊 '****10****'
精度與數據類型
- 默認的數據類型是 字符串 s
'{:.3}'.format('23333333') # '233'
'{:.3s}'.format('23333333') # '233'
- 進制轉換
'{:b}'.format(20) # 二進制 '10100'
'{:o}'.format(20) # 八進制 '24'
'{:x}'.format(20) # 十六進制 '14'
- 浮點數和科學計數法
'{:e}'.format(1234567.1234567) # 科學計數法 '1.234567e+06'
'{:.2e}'.format(1234567.1234567) # '1.23e+06'
'{:.3f}'.format(1234567.1234567) # 浮點數 '1234567.123'
'{:%}'.format(1) # 百分數 '100.000000%'
'{:.0%}'.format(1) # '100%'
花括號轉譯
- 使用花括號轉譯花括號
'{{{}}}'.format('peter') # '{peter}'