Franky's Blog

书山有路勤为径,学海无涯苦作舟……

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"


Share