今天阅读代码时遇到以下的输出代码:
print(' [Time taken: {!s}]'.format(datetime.now() - start_time))
这行代码涉及到format函数和{!s}的使用。
一、format函数首先,format是python2.6新增的一个格式化字符串的方法,对比旧版本中常用的%格式方法,有以下优点:
1.填充位置可以兼容不同的数据类型,而老版本的%方法中%s只能替代字符串类型;
2.填充方式十分灵活,如下图,可以支持多种不同的对应和填充方式。
3.支持单个参数实现多次输出,支持key=value对应方式,参数顺序可以不按顺序
4.这是目前推荐的主流使用方式,%方式将会在后面的版本逐步被淘汰
二、{!s}的意思!后面可以加s r a字母 分别对应str() repr() ascii()三个函数,作用是在填充前先用对应的函数来处理参数。即原来最上面的那行代码就是在输出前,先通过str()函数转为字符串。