用 ‘%’ 格式化
在一個(gè)字符串中黍氮,有幾個(gè)‘%’占位符抹腿,后面的%()就跟幾個(gè)變量或者值晕鹊,順序必須一致對(duì)應(yīng)松却。當(dāng)只有一個(gè)%時(shí),括號(hào)可以省略溅话。
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
常見(jiàn)的占位符:
符號(hào) | 類(lèi)型 |
---|---|
%d | 整數(shù) |
%f | 浮點(diǎn)數(shù) |
%s | 字符串 |
%x | 十六進(jìn)制整數(shù) |
格式化整數(shù)和浮點(diǎn)數(shù)還可以指定是否補(bǔ)0和整數(shù)與小數(shù)的位數(shù):
>>> '%2d-%02d' % (3, 1)
' 3-01'
>>> '%.2f' % 3.1415926
'3.14'
字符串里面有‘%’時(shí)晓锻,需要轉(zhuǎn)義,用‘%%’來(lái)表示一個(gè)‘%’
>>> 'growth rate: %d %%' % 7
'growth rate: 7 %
用format函數(shù)格式化
‘替換’方法
通過(guò)位置
字符串的format函數(shù)可以接受不限個(gè)參數(shù)公荧,位置可以不按順序带射,可以不用或者用多次,可以接受‘’
>>> '{0},{1}'.format('abc',123)
'abc,123'
>>> '{1},{2}'.format('abc',123,'efg')
'123,efg'
>>> '{},{}'.format('abc',123)
'abc,123'
>>> '{1},{0},{1}'.format('abc',123)
'123,abc,123'
通過(guò)關(guān)鍵字參數(shù)
>>> '{name},{age}'.format(age=123,name='abc')
'abc,123'
通過(guò)對(duì)象屬性
class Person:
def __init__(self,name,age):
self.name,self.age = name,age
def __str__(self):
return 'This guy is {self.name},is {self.age} old'.format(self=self)
>>> str(Person('abc',123))
'This guy is abc,is 123 old'
通過(guò)下標(biāo)
>>> p=['abc',123]
>>> '{p[0]},{p[1]}'.format(p=p)
'abc,123'
也可以:
>>> p=['abc',123]
>>> '{0[0]},{0[1]}'.format(p)
'abc,123'
格式限定符
語(yǔ)法是{}中帶:號(hào)
填充與對(duì)齊
填充常跟對(duì)齊一起使用
^循狰、<窟社、>分別是居中、左對(duì)齊绪钥、右對(duì)齊灿里,后面帶寬度
:號(hào)后面帶填充的字符,只能是一個(gè)字符程腹,不指定的話默認(rèn)是用空格填充
比如
>>> '{:>8}'.format('189')
' 189'
>>> '{:0>8}'.format('189')
'00000189'
>>> '{:a>8}'.format('189')
'aaaaa189'
精度與類(lèi)型f
精度常跟類(lèi)型f一起使用匣吊,來(lái)格式化浮點(diǎn)數(shù)
>>> '{:.2f}'.format(321.33345)
'321.33'
其中.2表示長(zhǎng)度為2的精度,f表示float類(lèi)型寸潦。
進(jìn)制
主要就是進(jìn)制了色鸳,b、d见转、o命雀、x分別是二進(jìn)制、十進(jìn)制斩箫、八進(jìn)制吏砂、十六進(jìn)制撵儿。
>>> '{:b}'.format(17)
'10001'
>>> '{:d}'.format(17)
'17'
>>> '{:o}'.format(17)
'21'
>>> '{:x}'.format(17)
'11
用,號(hào)還能用來(lái)做金額的千位分隔符狐血。
>>> '{:,}'.format(1234567890)
'1,234,567,890'