Python format() 格式化输出详解:语法、参数与实战示例

纸上星河
纸上星河
发布时间:2026-10-15 | 2人浏览过
原创

本文详细介绍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()格式化内容,建议搜索本站历史文章或继续阅读后续相关文章。感谢大家的支持!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表