天天看點

python字元串格式化(format)

1、使用位置參數

要點:從以下例子可以看出位置參數不受順序限制,且可以為{},隻要format裡有相對應的參數值即可,參數索引從0開,傳入位置參數清單可用*清單

>>> li = ['echo',18]
 >>> 'my name is {} ,age {}'.format('echo',18)
 'my name is echo,age 18'
 >>> 'my name is {1} ,age {0}'.format(10,'echo')
 'my name is echo,age 10'
 >>> 'my name is {1} ,age {0} {1}'.format(10,'echo')
 'my name is echo,age 10 hoho'
 >>> 'my name is {} ,age {}'.format(*li)
 'my name is echo,age 18'      

2、使用關鍵字參數

要點:關鍵字參數值要對得上,可用字典當關鍵字參數傳入值,字典前加**即可

>>> hash = {'name':'echo','age':18}
 >>> 'my name is {name},age is {age}'.format(name='echo',age=19)
 'my name is echo,age is 19'
 >>> 'my name is {name},age is {age}'.format(**hash)
 'my name is echo,age is 18‘      

3、填充與格式化

:[填充字元][對齊方式 <^>][寬度]

>>> '{0:*>10}'.format(10)  ##右對齊

 '********10'

 >>> '{0:*<10}'.format(10)  ##左對齊

 '10********'

 >>> '{0:*^10}'.format(10)  ##居中對齊

 '****10****'      

4、精度與進制

>>> '{0:.2f}'.format(1/3)
 '0.33'
 >>> '{0:b}'.format(10)    #二進制
 '1010'
 >>> '{0:o}'.format(10)     #八進制
 '12'
 >>> '{0:x}'.format(10)     #16進制
 'a'
 >>> '{:,}'.format(12369132698)  #千分位格式化
 '12,369,132,698'      
>>> li

 ['echo', 18]

 >>> 'name is {0[0]} age is {0[1]}'.format(li)

 'name is echoage is 18'