参考资料:https://docs.python.org/3.5/library/stdtypes.html#old-string-formatting
实例
s#!/bin/python a = ("year:%d model:%s") % (2018, 'BMW X5')
print(a) #year:2018 model:BMW X5
可以看到用这种类似于c语言中的printf函数,实现了字符串拼接,这个在实际应用中很常见,比如打日志,比如输出一段完整的内容,其中包含一些变量。
按照%出现的顺序,依次和后面的参数对应起来,来实现字符串拼接。
以下是一些提示
提示1:
前面出现的%必须和后边的参数个数保持一致,否则会报错:TypeError: not all arguments converted during string formatting
提示2:
这里如果输出%本身,需要用%来转义。
a = ("%% year:%d model:%s") % (2018, 'BMW X5')
提示3:
支持的所有类型见表格:
表示 | 含义 | 备注 |
%d | 整型 | |
%i | 整型 | |
%u | 整型 | 和%d一样 |
%f | 浮点数 | |
%F | 浮点数 | |
%e | 指数形式的整型 | |
%E | 指数形式的整型 | |
%g | 浮点数表示,精度太低,需要指数介入时会用到,e是小写的 | |
%G | 浮点数表示,精度太低,需要指数介入时会用到,e是大写的 | |
%x | 十六进制表示 | |
%X | 十六进制表示 | |
%c | char类型 | 必须是单个字符,否则报错 |
%o | 八进制 | 这里是字母o |
%r | 使用函数repr()来转化后的string | |
%s | string类型,使用str()转换后的值 | |
%a | string,使用ascii(0函数转换后的值 |
以上是所有常用的类型。
对于%d,支持类似于%3d(3位整型),'% 8d','%08d'这样的表示。
类似的%f,也是一样的,支持%8.5f。
其它格式见链接:https://docs.python.org/3.5/library/stdtypes.html#old-string-formatting