like

% 操作符,格式如下:

%[(name)][flags][width].[precision]typecode
  • (name) 为命名
  • flags 可以有 +,-,' '或 0。+ 表示右对齐。- 表示左对齐。' ' 为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0 表示使用 0 填充。
  • width 表示显示宽度
  • precision 表示小数点后精度

以下是类型码:

%s    字符串 (采用str()的显示)
%r    字符串 (采用repr()的显示)
%c    单个字符
%b    二进制整数
%d    十进制整数
%i    十进制整数
%o    八进制整数
%x    十六进制整数
%e    指数 (基底写为e)
%E    指数 (基底写为E)
%f    浮点数
%F    浮点数,与上相同%g    指数(e)或浮点数 (根据显示长度)
%G    指数(E)或浮点数 (根据显示长度)
%%    字符"%"

举例

>>> print("%6.3f" % 2.3)
 2.300
  • 第一个 % 后面的内容为显示的格式说明,6 为显示宽度,3 为小数点位数,f 为浮点数类型
  • 第二个 % 后面为显示的内容来源,输出结果右对齐,2.300 长度为 5,故前面有一空格
>>> print("%+10x" % 10)
    +a

x 为表示 16 进制,显示宽度为 10,前面有 8 个空格。

>>>print("%-5x" % -10)
-a  

%-5x 负号为左对齐,显示宽度为 5,故 -a 后面有 3 个空格

>>>pi=3.1415
>>>print ("pi的值是%s"%pi)
pi的值是3.1415

>>>print ("pi的值是%.8f"%pi)
pi的值是3.14150000

上面的 width, precision 为两个整数。我们可以利用 *,来动态代入这两个量。比如:

>>> print("%10.*f" % (4, 1.2))
  1.2000

以下是补充

简单的说,这是一种将其他变量置入字符串特定位置以生成新字符串的操作,比如说:

>>> n = "Runoob"
>>> "My name is %s" % n
'My name is Runoob'

这段代码首先定义了一个名为 n 的变量,内容为 Runoob。然后下方的字符串中有一个 %s,他的含义是“这里将被替换成一个新的字符串”,用作替换的内容放在字符串后面的%后面,就是那个 n。所以最终这个字符串会变成 My name is Runoob。