内置函数format

   

format():用于字符串格式化,功能非常强大,格式是str.format()
该函数用法非常灵活多样,所以单独列出来介绍。
 
1,  空字段名


print 'Hello,{},欢迎学习{}'.format('小明','python')

输出:Hello,小明,欢迎学习python

2,  数字字段名

print '我是{0},我喜欢{1}'.format('小明','打羽毛球')

输出:我是小明,我喜欢打羽毛球

 

数字字段可多次使用:

print '我是{0},我喜欢{1},你喜欢{1}吗?'.format('小明','打羽毛球')

输出:我是小明,我喜欢打羽毛球,你喜欢打羽毛球吗?

 

数字字段与空字段不能混合一起使用,下面的用法将报错:

print '我是{0},我喜欢{1},你喜欢{}吗?'.format('小明','打羽毛球','足球')

输出:

ValueError: cannot switch from manual field specification to automatic field numbering

 

数字数值不能越界,即不能起过format给出的值数量,注意下标是0开始,下面用法将报错:

print '我是{2}'.format('小明','打羽毛球')

输出:IndexError: tuple index out of range

 

3,  变量字段名

print '我是{name},来自{city}的{constellation}一枚{sex}'.format(name='小明',city='珠海市',constellation='天蝎座',sex='小哥哥')

输出:我是小明,来自珠海市的天蝎座一枚小哥哥

 

使用变量字段名时,顺序可以打乱:

print '我是{name},来自{city}的{constellation}一枚{sex}'.format(constellation='天蝎座',name='小明',sex='小哥哥',city='珠海市')

输出:我是小明,来自珠海市的天蝎座一枚小哥哥

 

变量字段名可与空字段混合一起使用,但变量字段名的值必须放在后面

print '我是{name},来自{city}的{constellation}一枚{}'.format('小哥哥',name='小明',city='珠海市',constellation='天蝎座')

输出:我是小明,来自珠海市的天蝎座一枚小哥哥

 

下面的用法将报错:

print '我是{name},来自{city}的{constellation}一枚{}'.format(name='小明',city='珠海市',constellation='天蝎座','小哥哥')

输出:SyntaxError: non-keyword arg after keyword arg

 

 

变量字段名可与数字字段混合一起使用,变量字段名也必须放在后面

print '我是{0},来自{1}的{constellation}一枚{sex}'.format('小明','珠海市',constellation='天蝎座',sex='小姐姐')

输出:我是小明,来自珠海市的天蝎座一枚小姐姐

 

 

4,  列表,元组或字典的字段名

使用列表:

a = ['小明','小红']
b = [
'珠海市','广州市']
c = [
'天蝎座','天平座']
d = [
'小哥哥','小姐姐']
print '我是{0[0]},来自{1[0]}的{2[0]}一枚{3[1]}'.format(a,b,c,d)

输出:我是小明,来自珠海市的天蝎座一枚小姐姐

 

使用元组:

test = ('小明','珠海市','天蝎座','小哥哥')
print '我是{0},来自{1}的{2}一枚{3}'.format(*test)
print '我是{},来自{}的{}一枚{}'.format(*test)

输出:我是小明,来自珠海市的天蝎座一枚小哥哥

我是小明,来自珠海市的天蝎座一枚小哥哥

 

使用字典:

test = {'name':'小明','city':'珠海市','constellation':'天蝎座','swx':'小哥哥'}
    print '我是{name},来自{city}的{constellation}一枚{swx}'.format(**test)

输出:我是小明,来自珠海市的天蝎座一枚小哥哥

 

 

5,  使用限定符

Format中的限定符有更丰富的格式,通过{:}来表示

精度:指定小数点后面保留多少位,如果是字符串,则是取长度

print '{:.2f}'.format(3.1415936)
print '{:.4}'.format(u'我是小明,来自珠海市的天蝎座一枚小哥哥')

输出:3.14

我是小明

 

进制:可以进制互换,b、d、o、x分别是二进制、十进制、八进制、十六进制

print '{:b}'.format(18)
print '{:d}'.format(18)
print '{:o}'.format(18)
print('{:x}'.format(18))

输出:10010

18

22

12

 

填充对齐:用^、<、>分别是居中、左对齐、右对齐,符号前表示要填充的字符,符号后表示要填充的长度

print '{:0<10}'.format(18# 左对齐,10位数,不够用0填充
print '{:0>10}'.format(18# 右对齐,10位数,不够用0填充
print '{:0^10}'.format(18# 中间对齐,10位数,不够用0填充

输出:1800000000

0000000018

0000180000

 

 

6,  金额千位分割符

print '{:,}'.format(180000)

输出:180,000


7,  百分比

print '{:%}'.format(0.25)

输出25.000000%

 

8,  输出{}本身

{}是format函数的特定符号,如果要打印输出{},则可用{}转义

print '我是{{{}}}'.format('小明')

输出:我是{小明}


该文章对你有帮助吗,求分享转发: 分享到QQ空间 分享给QQ好友

 

 

粤ICP备19116230号
友情链接: 码农藏书阁 天天链