Python字符串格式化
admin
2023-07-31 02:27:37
0

在许多编程语言中都包含有格式化字符串的功能,比如C和Fortran语言中的格式化输入输出。Python中内置有对字符串进行格式化的操作%。

模板

格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一个tuple将多个值传递给模板,每个值对应一个格式符。

比如下面的例子:

复制代码 代码如下:
print(\”I\’m %s. I\’m %d year old\” % (\’Vamei\’, 99))

上面的例子中,

\”I\’m %s. I\’m %d year old\” 为我们的模板。%s为第一个格式符,表示一个字符串。%d为第二个格式符,表示一个整数。(\’Vamei\’, 99)的两个元素\’Vamei\’和99为替换%s和%d的真实值。
在模板和tuple之间,有一个%号分隔,它代表了格式化操作。

整个\”I\’m %s. I\’m %d year old\” % (\’Vamei\’, 99) 实际上构成一个字符串表达式。我们可以像一个正常的字符串那样,将它赋值给某个变量。比如:

复制代码 代码如下:
a = \”I\’m %s. I\’m %d year old\” % (\’Vamei\’, 99)
print(a)

我们还可以用词典来传递真实值。如下:

复制代码 代码如下:
print(\”I\’m %(name)s. I\’m %(age)d year old\” % {\’name\’:\’Vamei\’, \’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\”。

例子:

复制代码 代码如下:
In [1]: \”%(name)s is %(age)s\” % {\”name\”:\”bob\”, \”age\”: 12}
Out[1]: \’bob is 12\’
In [2]: \”%s is %s\” % (\”bob\”, \”13\”)
Out[2]: \’bob is 13\’
In [6]: \”{0} is {1}\”.format(\”bob\”, \”14\”)
Out[6]: \’bob is 14\’
In [7]: \”{name} is {age}\”.format(name=\”bob\”,age=\”15\”)
Out[7]: \’bob is 15\’

总结

Python中内置的%操作符可用于格式化字符串操作,控制字符串的呈现格式。Python中还有其他的格式化字符串的方式,但%操作符的使用是最方便的。

以上所述就是本文的全部内容了,希望大家能够喜欢。

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python绘图库Matplo... 本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是pyt...
Prometheus+Graf... 一,Prometheus概述 1,什么是Prometheus?Prometheus是最初在Sound...