用 ‘%’ 格式化
在一個字符串中,有幾個‘%’占位符,后面的%()就跟幾個變量或者值,順序必須一致對應。當只有一個%時,括號可以省略。
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
常見的占位符:
符號 | 類型 |
---|---|
%d | 整數 |
%f | 浮點數 |
%s | 字符串 |
%x | 十六進制整數 |
格式化整數和浮點數還可以指定是否補0和整數與小數的位數:
>>> '%2d-%02d' % (3, 1)
' 3-01'
>>> '%.2f' % 3.1415926
'3.14'
字符串里面有‘%’時,需要轉義,用‘%%’來表示一個‘%’
>>> 'growth rate: %d %%' % 7
'growth rate: 7 %
用format函數格式化
‘替換’方法
通過位置
字符串的format函數可以接受不限個參數,位置可以不按順序,可以不用或者用多次,可以接受‘’
>>> '{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'
通過關鍵字參數
>>> '{name},{age}'.format(age=123,name='abc')
'abc,123'
通過對象屬性
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'
通過下標
>>> p=['abc',123]
>>> '{p[0]},{p[1]}'.format(p=p)
'abc,123'
也可以:
>>> p=['abc',123]
>>> '{0[0]},{0[1]}'.format(p)
'abc,123'
格式限定符
語法是{}中帶:號
填充與對齊
填充常跟對齊一起使用
^、<、>分別是居中、左對齊、右對齊,后面帶寬度
:號后面帶填充的字符,只能是一個字符,不指定的話默認是用空格填充
比如
>>> '{:>8}'.format('189')
' 189'
>>> '{:0>8}'.format('189')
'00000189'
>>> '{:a>8}'.format('189')
'aaaaa189'
精度與類型f
精度常跟類型f一起使用,來格式化浮點數
>>> '{:.2f}'.format(321.33345)
'321.33'
其中.2表示長度為2的精度,f表示float類型。
進制
主要就是進制了,b、d、o、x分別是二進制、十進制、八進制、十六進制。
>>> '{:b}'.format(17)
'10001'
>>> '{:d}'.format(17)
'17'
>>> '{:o}'.format(17)
'21'
>>> '{:x}'.format(17)
'11
用,號還能用來做金額的千位分隔符。
>>> '{:,}'.format(1234567890)
'1,234,567,890'