Python format() 格式化输出详解:语法、参数与实战示例
本文详细介绍Python 2.6引入的format()字符串格式化方法。涵盖其基本语法结构,深入解析index、fill、align、sign、width、precision及type等关键参数的具体含义与用法,并通过货币、科学计数法、进制转换等实际代码示例,帮助开发者掌握灵活的数据格式化技巧。
Python format() 方法概述
从 Python 2.6 版本起,字符串类型(str)内置了 format() 方法,用于对字符串进行格式化操作,本节将重点讲解该方法的使用。
format() 语法结构
format() 方法的标准语法格式如下所示:
str.format(args)
在该方法中,str 代表用于定义字符串显示样式的模板;args 代表需要进行格式转换的数据项,若涉及多个数据项,各参数之间需使用逗号进行分隔。
掌握 format() 方法的关键难点,在于正确理解并书写 str 显示样式的格式规范。在构建显示样式模板时,必须使用 {} 和 : 来定义占位符,其完整的
语法结构为:
{ [index][ : [ [fill] align] [sign] [#] [width] [.precision] [type] ] }
注意:格式中使用 [] 括起来的参数均为可选参数,即根据实际需求选择是否使用。
格式化参数详解
各参数的具体含义解释如下:
index:用于指定冒号后设置的格式规则应用于 args 中的第几个数据,数据索引从 0 开始计数。若省略此选项,系统将依据args中数据的出现顺序自动分配索引。fill:指定用于填充空白区域的字符。需注意,当填充字符为逗号(,)且作用于整数或浮点数时,数值将以逗号分隔的形式输出,例如:数字 1000000 会输出为 1,000,000。align:用于指定数据的对齐方式,具体的对齐方式及其含义详见表 1。
表 1 展示了 align 参数及其具体含义:
| align | 含义 |
|---|---|
| < | 数据左对齐。 |
| > | 数据右对齐。 |
| = | 数据右对齐,同时将符号放置在填充内容的最左侧,该选项只对数字类型有效。 |
| ^ | 数据居中,此选项需和 width 参数一起使用。 |
sign:用于指定是否显示符号数,该参数的取值及其对应含义如表 2 所示:
表 2 列出了 sign 参数的具体含义:
| sign参数 | 含义 |
|---|---|
| + | 正数前加正号,负数前加负号。 |
| - | 正数前不加正号,负数前加负号。 |
| 空格 | 正数前加空格,负数前加负号。 |
| # | 对于二进制数、八进制数和十六进制数,使用此参数,各进制数前会分别显示 0b、0o、0x前缀;反之则不显示前缀。 |
width:用于指定输出数据时所占用的最小宽度。precision:用于指定保留的小数位数。type:用于指定输出数据的具体类型,各类类型的含义详见表 3。
表 3 列出了 type 占位符类型及其对应的含义:
| type类型值 | 含义 |
|---|---|
| s | 对字符串类型格式化。 |
| d | 十进制整数。 |
| c | 将十进制整数自动转换成对应的 Unicode 字符。 |
| e 或者 E | 转换成科学计数法后,再格式化输出。 |
| g 或 G | 自动在 e 和 f(或 E 和 F)中切换。 |
| b | 将十进制数自动转换成二进制表示,再格式化输出。 |
| o | 将十进制数自动转换成八进制表示,再格式化输出。 |
| x 或者 X | 将十进制数自动转换成十六进制表示,再格式化输出。 |
| f 或者 F | 转换为浮点数(默认小数点后保留 6 位),再格式化输出。 |
| % | 显示百分比(默认显示小数点后 6 位)。 |
format() 方法实战示例
【例 1】
str="网站名称:{:>9s}\t网址:{:s}"
print(str.format("C语言中文网","c.biancheng.net"))
上述代码的输出结果为:
Traceback (most recent call last): File "C:\Users\mengma\Desktop\1.py", line 2, in print(str.format("C语言中文网","c.biancheng.net")) ValueError: cannot switch from automatic field numbering to manual field specification
【例 2】
在实际软件开发中,数值类型往往存在多种显示需求,例如货币格式、百分比格式等。利用 format() 方法,可以将数值格式化为不同的表现形式。
#以货币形式显示
print("货币形式:{:,d}".format(1000000))
#科学计数法表示
print("科学计数法:{:E}".format(1200.12))
#以十六进制表示
print("100的十六进制:{:#x}".format(100))
#输出百分比形式
print("0.01的百分比表示:{:.0%}".format(0.01))
上述代码的输出结果为:
货币形式:1,000,000 科学计数法:1.200120E+03 100的十六进制:0x64 0.01的百分比表示:1%
至此,关于 Python format()格式化输出方法的介绍已完毕。如需了解更多相关 Python format()格式化内容,建议搜索本站历史文章或继续阅读后续相关文章。感谢大家的支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









