python format()返回值是字符串
def format(self, *args, **kwargs): # known special case of str.format
"""
S.format(*args, **kwargs) -> string
Return a formatted version of S, using substitutions from args and kwargs.
The substitutions are identified by braces ('{' and '}').
"""
pass
基础用法
In [32]: "{}={}".format('a',10)
Out[32]: 'a=10'
使用关键字,也可通过类似下标指定对应参数
In [31]: "{key}={value}".format(key='a',value=10)
Out[31]: 'a=10'
In [33]: "{first} {second} {first}".format(first=1,second=2)
Out[33]: '1 2 1'
In [35]: "{0} {1} {0}".format(1,2)
Out[35]: '1 2 1'
列表
In [34]: 'the second value {0[2]}'.format(range(10))
Out[34]: 'the second value 2'
字典
In [36]: print "{0[a]} {1[b]}".format(dict(a=10),dict(b=110))
10 110
<, 左对齐
^ 居中
,> 右对齐
In [39]: '[{0:<10}],[{0:^10}],[{0:*>10}]'.format('a')
Out[39]: '[a ],[ a ],[*********a]'
#默认填充是空格,也可以用其他的符号来代替
%r 调用 rper函数打印字符串,repr函数返回的字符串是加上了转义序列,是直接书写的字符串的形式
%s 调用 str函数打印字符串,str函数返回原始字符串
In [42]: '{0!r:20}'.format('Hello')
Out[42]: "'Hello' "
In [43]: '{0!s:20}'.format('Hello')
Out[43]: 'Hello '
In [46]: class Data(object):
...: def __str__(self):
...: return 'str'
...: def __repr__(self):
...: return 'repr'
...:
In [47]: '{0!s} {0!r}'.format(Data())
Out[47]: 'str repr'
时间格式
In [44]: from datetime import datetime
In [45]: "Today is :{0:%a %b %d %H:%M:%S %Y}".format(datetime.now())
Out[45]: 'Today is :Tue Nov 29 19:16:13 2016'
class类型
In [2]: class a():
...: age =18
...: name = 'Tim'
...:
In [3]: 'My name is {a.name},Age is {a.age}'.format(a=a())
Out[3]: 'My name is Tim,Age is 18'
dict类型
In [4]: a_dict = {'name':'Tim'}
In [5]: "My name is {a_dict[name]}".format(a_dict=a_dict)
Out[5]: 'My name is Tim'
多使用format()方法,少使用print()
(于2016年11月29日,http://blog.youkuaiyun.com/bzd_111)