Luckylau's Blog

你懂python吗(5)

python的format函数使用

语法

它通过{}和:来代替%。

用法

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

精度常跟类型f一起使用

b、d、o、x分别是二进制、十进制、八进制、十六进制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
class Person():
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return 'This guy is {self.name},{self.age} old'.format(self=self)
if __name__ == '__main__':
# 元组表达
info = ("luckylau", 23)
print "info : %s" % (info,) #对于元组,后面的逗号不能少,会报错
print '{1},{0}'.format(*info) #对于元组,星号不能少,会报错
# 通过位置映射
print '{0},{1}'.format('test', '123')
print '{0},{1},{0}'.format('test', '123')
# 通过关键字映射
print "{name},{age}".format(name="luckylau", age=23)
# 通过对象属性
print str(Person("luckylau",23))
# 数组表达
info=["luckylau",23]
print "info : %s" % (info,)
print 'info :{1},{0}'.format(*info) #星号不能少
print "info : %s" % (info)
print 'info :{0[1]},{0[0]}'.format(info)
# 字典的表达
info={"name":"luckylau","age":23}
print "info : %s " %(info)
print "info : %s" % (info,)
print 'info : {name},{age}'.format(**info) #两个星号一个不能少
# 对齐
print '{:>8}'.format('189')
print '{:0>8}'.format('189')
# 精度
print '{:.2f}'.format(321.33345)
# 转二进制
print '{:b}'.format(17)
#output
info : ('luckylau', 23)
23,luckylau
test,123
test,123,test
luckylau,23
This guy is luckylau,23 old
info : ['luckylau', 23]
info :23,luckylau
info : ['luckylau', 23]
info :23,luckylau
info : {'age': 23, 'name': 'luckylau'}
info : {'age': 23, 'name': 'luckylau'}
info : luckylau,23
189
00000189
321.33
10001
Luckylau wechat
如果对您有价值,看官可以打赏的!