内置函数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好友