Python格式化字符
类型码 | 描述 |
---|---|
%s | 字符串 (采用str()的显示) |
%r | 字符串 (采用repr()的显示) |
%c | 单个字符 |
%b | 二进制整数 |
%d | 十进制整数 |
%i | 十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数 |
%e | 指数 (基底写为e) |
%E | 指数 (基底写为E) |
%f | 浮点数 |
%F | 浮点数,与上相同 |
%g | 指数(e)或浮点数 |
%G | 指数(E)或浮点数 |
%% | 字符% |
可以用如下的方式,对格式进行进一步的控制:
%[(name)][flags][width].[precision]typecode
-
(name)
为命名 -
flags
可以有+
,-
,' '
或0
。+
表示右对齐(会占用一个空格的位置显示正负号)。-
表示左对齐。' '
为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0
表示使用0填充。
-
width
表示显示宽度 -
precision
表示小数点后精度
例如:
1>>> print("%+10x" % 10)
2 +a
3>>> print("%04d" % 6)
40006
5>>> print("%6.3f" % 3.2)
6 3.200
7>>> print("%-10x" % 10)
8a
9>>> print("%10x" % 10)
10 a
上面的width, precision为两个整数。我们可以利用*,来动态代入这两个量。比如:
1>>> print("%.*f" % (4, 1.2))
21.2000
Python实际上用4来替换*。所以实际的模板为"%.4f"
。