​format​​是Python3中常用的字符串格式化函数。功能很强大,也很好用。

位置映射格式化

print("{}:{}".format('192.168.0.100',8080))
# 192.168.0.100:8080

第一个​​{}​​​映射到​​192.168.0.100​​​,
第二个​​​{}​​​映射到​​8080​​。

索引映射格式化

print("{0[0]}.{0[1]}".format(('baidu','com')))
# baidu.com

​{0[0]}​​​表示format参数的第一个元组的第一个元素​​baidu​​​。
​​​{0[1]}​​​表示format参数的第一个元组的第二个元素​​com​​。

关键字映射格式化

print("{server}{1}:{0}".format(8080,'192.168.1.100',server='Web Server Info :'))
# Web Server Info :192.168.1.100:8080

​{server}​​​替换为​​Web Server Info :​​​,
​​​{1}​​​映射到第二个位置​​192.168.1.100​​​,
​​​{0}​​​映射到第一个位置​​8080​

对象

class Orange(object):
def __init__(self, v):
self.value = v

o = Orange(5)
print("This value of object is {.value}.".format(o))
# This value of object is 5.

填充对齐

print("{0}*{1}={2:0>3}".format(3,2,2*3))
# 3*2=006

​{2:0>3}​​​表示​​format​​​参数的第三个元素,并格式化为​​3​​​位,不足3位填充​​0​​​,并右对齐。
​​​:​​​是分隔符,前面是索引值或名称,后面是样式(填充字符、对齐方式、宽度)。
​​​^​​表示居中
​​​<​​表示左对齐
​​​>​​表示右对齐

print("{:*^30}".format('centered'))
# ***********centered***********

​^​​​表示​​居中​​​对齐,​​30​​​位字符串,不足30位的填充​​*​​。

print("{:.3f}".format(2.1415))
# 2.142

​.3​​​表示精度3位,​​f​​表示浮点数。

参考:
​​​ https://docs.python.org/3/library/string.html#formatspec​