Python基本 – 字符串名目化 (%操纵符)
在很多编程语言中都包括有名目化字符串的成果,好比C和Fortran语言中的名目化输入输出。在Python中内置有对字符串举办名目化的操纵符是"%"。
模板
名目化字符串时,Python利用一个字符串作为模板。模板中有名目符,这些名目符为真实值预留位置,并说明真实数值应该泛起的名目。Python用一个tuple将多个值通报给模板,每个值对应一个名目符。
好比下面的例子:
print("I'm %s. I'm %d" % ('Pythontab', 1))
上面的例子中,
"I'm %s. I'm %d"为我们的模板。%s为第一个名目符,暗示一个字符串。%d为第二个名目符,暗示一个整数。('Pythontab',99)的两个元素'Pythontab'和99为替换%s和%d的真实值。
在模板和tuple之间,有一个%号脱离,它代表了名目化操纵。
整个"I'm %s. I'm %d" % ('Pythontab', 1) 实际上组成一个字符串表达式。我们可以像一个正常的字符串那样,将它赋值给某个变量。好比:
a = "I'm %s. I'm %d" % ('Pythontab', 1)
print(a)
功效是:I'm Pythontab. I'm 1
我们还可以用辞书来通报真实值。如下:
print("I'm %(name)s. I'm %(age)d" % {'name':'Pythontab', 'age':99})
可以看到,我们对两个名目符举办了定名。定名利用()括起来。每个定名对应辞书的一个key。
名目符
名目符为真实值预留位置,并节制显示的名目。名目符可以包括有一个范例码,用以节制显示的范例,如下:
%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暗示小数点后精度
好比:
print("%+10x" % 10)
print("%04d" % 5)
print("%6.3f" % 2.3)
上面的width, precision为两个整数。我们可以操作*,来动态代入这两个量。好比:
print("%.*f" % (4, 1.2))
Python实际上用4来替换*。所以实际的模板为"%.4f"。
总结
Python中内置的%操纵符可用于名目化字符串操纵,节制字符串的泛起名目。Python中尚有其他的名目化字符串的方法,但%操纵符的利用是最利便的。