Python字符串格式化format()方法用法与参数详解

键盘旁的猫
键盘旁的猫
发布时间:2026-10-11 | 2人浏览过
原创

在使用Python进行数据处理与日志输出时,将变量安全、规范地拼接进固定文本是常见需求。format()方法提供了基于槽位占位符的模板化字符串处理方案,支持灵活的参数对齐、数值精度控制与进制转换,能够替代传统的百分号%拼接,使代码具备更高的可读性与扩展性。

核心语法与基础替换

format()方法会返回一个新的字符串,其基本调用结构如下:

    <模板字符串>.format(<参数1>, <参数2>, ...)

模板中的空花括号{}作为槽位,系统默认按从左到右的顺序依次填入format()传入的参数。该方法会自动处理不同类型的参数拼接,无需手动转换为字符串。

"{}:计算机{}的CPU 占用率为{}%。".format("2016-12-31", "PYTHON", 10)
# 结果:'2016-12-31:计算机PYTHON的CPU 占用率为10%。'

格式控制信息的完整结构

槽位除了使用空括号占位外,还可以传入具体的参数序号,并附加格式控制标记,结构为:{<参数序号>:<格式控制标记>}。其中格式控制标记由填充、对齐、宽度、千位分隔符、精度与类型六个字段按需组合。

format方法格式控制标记组成结构图
图中展示了format()模板字符串中各个格式控制字段的排列顺序与含义对照

第1步:设置输出宽度与对齐方式

该步骤用于统一列宽,适用于报表生成或终端对齐输出。

  • <宽度>:设定槽位的最小字符数。若实际参数长度超过宽度,则以实际长度为准;不足则在右侧补空格。
  • <对齐>:使用<(左对齐)、>(右对齐)、^(居中对齐)控制文本在预留宽度内的位置。
  • <填充>:默认补充空格,可通过在宽度前指定单字符更换填充符。
s = "PYTHON"
"{0:30}".format(s)   # 左对齐,右侧补空格:'PYTHON                        '
"{0:>30}".format(s)  # 右对齐:'                        PYTHON'
"{0:*^30}".format(s) # 居中并以星号填充:'************PYTHON************'
"{0:-^30}".format(s) # 居中并以连字符填充:'------------PYTHON------------'
"{0:3}".format(s)    # 宽度小于原字符串,直接输出原值:'PYTHON'

第2步:配置数字千位分隔符

在格式标记的宽度或对齐指令后插入英文逗号,,可在解析整数或浮点数时自动插入千位分隔符。

"{0:-^20,}".format(1234567890)
# 结果:'---1,234,567,890----'

"{0:-^20,}".format(12345.67890)
# 结果:'----1,234.6789-----'

第3步:控制浮点精度与字符串最大长度

通过小数点.后接数字设定精度,具有双重作用:

  • 浮点数:保留指定小数位的四舍五入输出。
  • 字符串:直接截断,仅保留前N个字符。
"{0:.2f}".format(12345.67890)  
# 浮点数保留两位小数:'12345.68'

"{0:H^20.3f}".format(12345.67890) 
# 配合填充与精度:'HHHHH12345.679HHHHHH'

"{0:.4}".format("PYTHON") 
# 字符串截取前4位:'PYTH'

第4步:指定整数与浮点数的底层输出类型

format()支持将数值转换为不同进制或科学计数法格式,满足特定协议或日志规范的输出需求。

整数类型码:b(二进制)、c(Unicode字符)、d(十进制)、o(八进制)、x(小写十六进制)、X(大写十六进制)。

"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
# 结果:'110101001,Ʃ,425,651,1a9,1A9'

浮点数类型码:e(小写e指数形式)、E(大写E指数形式)、f(标准定点小数)、%(百分比形式)。建议搭配.精度字段避免多余零干扰阅读。

"{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(3.14)
# 结果:'3.14e+00,3.14E+00,3.14,314.00%'

完成状态验证与常见问题排查

操作完成后,可通过print()对比预期排版核对结果。若输出偏离预期,请检查以下关键点:

  1. 未闭合的花括号冲突:若模板本身需要输出普通花括号作为纯文本,必须使用双括号{{}} 进行转义,否则会触发索引报错。
  2. 精度与类型优先级:当同时指定.精度与类型码(如.2f)时,精度作用于最终数值计算,不会改变类型码的基础规则。
  3. 宽度边界覆盖:参数原始字符数超过设定的<宽度>时,格式化不会强行压缩,而是以实际长度延伸,这是正常设计行为。

总结

以上就是Python字符串格式化format()方法用法与参数详解的详细内容,更多关于Python数据排版与模板字符串处理的资料请关注本站其它相关文章!

本站声明

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

Python 相关产品和应用

全部下载

专题列表