Python字符串格式化的两种方式

一、使用%

%s     字符串
%c     字符
%d     十进制(整数)
%i     整数
%u    无符号整数
%o     八进制整数
%x    十六进制整数
%X     十六进制整数大写
%e     浮点数格式1 
%E     浮点数格式2 
%f     浮点数格式3 
%g    浮点数格式4 
%G    浮点数格式5 
%%     文字% 
>>> print("我叫%s,今年%d岁了" % ("小李", 20))
我叫小李,今年20岁了

二、通过{}替代%

1、正常使用

>>> print("我叫{},今年{}岁了".format("小李", 20))
我叫小李,今年20岁了

2、还可以通过在括号里填写数字,修改格式化的顺序

>>> print("我叫{1},今年{0}岁了".format("小李", 20))
我叫20,今年小李岁了

3、通过key取变量

>>> print("我叫{name},今年{age}岁了".format(name="小李", age=20))
我叫小李,今年20岁了

4、传入对象

>>> class Person:
...     def __init__(self,name,age):
...
...             self.name,self.age = name,age
...     def __str__(self):
...
...             return '我叫{self.name}, 今年{self.age}岁了'.format(self=self)
>>> str(Person('小李',20))
'我叫小李, 今年20岁了'

5、通过下标

>>> person=['小李',20]
>>> '我叫{0[0]}, 今年{0[1]}岁了'.format(person)
'我叫小李, 今年20岁了'

6、填充与对齐  

格式限定符,语法是{}中带:号

填充常跟对齐一起使用

^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

>>> '{:>8}'.format('189')
'     189'
>>> '{:>8}'.format('189')
'     189'
>>> '{:0>8}'.format('189')
'00000189'
>>> '{:a>8}'.format('189')
'aaaaa189'

7、精度与类型f

>>> '{:.2f}'.format(321.33345)
'321.33'

其中.2表示长度为2的精度,f表示float类型

8、其他类型

主要就是进制了,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'

 

posted @ 2016-09-18 15:24 hi_felix 阅读(...) 评论(...) 编辑 收藏