Python format() 格式化输出详解:位置、关键字、对齐与进制

凌晨两点半
凌晨两点半
发布时间:2026-10-13| 7人浏览过
原创

本文全面解析 Python 中 format() 函数的格式化输出功能。涵盖位置参数与关键字参数的使用、字符串对齐方式(左/右/居中)、数字精度控制、进制转换(二进制、八进制、十六进制)以及千分位分隔符的应用。通过具体代码示例,帮助开发者掌握高效、灵活的字符串格式化技巧,提升代码可读性与数据处理能力。

Python format() 格式化输出概述

格式化输出:format()

位置参数的基本使用

在 Python 中,format() 方法提供了一种将传统 % 占位符替换为 {} 大括号来实现字符串格式化的方式,使代码更具可读性和灵活性。

首先介绍位置参数的使用。在字符串模板中,使用 {} 作为占位符,随后在 format() 方法中按顺序传入变量值,系统会自动根据位置顺序进行替换。这种方式是将传统的 % 格式化升级为 {} 格式的基础用法。


'My name is {},age:{}'.format('Anxc',18)
'My name is Anxc,age:18'

位置参数的索引控制

接着,可以通过指定索引来调整位置参数的替换顺序。例如,在模板中明确指定 {0} 或 {1},可以控制传入参数的对应位置。虽然这种方式提供了更大的灵活性,但在简单场景下,直接按顺序传参可能更为直观。


'My name is {1},age:{0}'.format(18,'Anxc')
'My name is Anxc,age:18'

字符串对齐与字符填充

第三种常见用法是字符填充与对齐。通过指定填充字符和对齐方式(左对齐、右对齐或居中对齐),可以控制输出字符串的视觉效果。例如,使用 {:>#10} 可以实现右对齐并填充 # 号,总宽度为 10 个字符。


'右对齐{:#>10}'.format(10)
'右对齐########10'

关键字参数的应用

第四种方式是使用关键字参数。通过在模板中使用 {key} 形式,并在 format() 中传入 key=value 形式的参数,可以实现一一对应的赋值替换。这种方式在参数较多或顺序不固定时,能显著提高代码的可读性和维护性。


'My name is{name},age:{age}'.format(name='Anxc',age=18)
'My name isAnxc,age:18'

数字精度控制

第五种用法涉及数字的精度输出。类似于 C 语言中 float 类型的格式化,可以使用 {:.<x>f} 格式指定小数位数。其中 x 为整数,表示保留的小数位数;若 x 为非整数或格式错误,则可能无效。例如,'{:.4f}'.format(1/3) 会输出 '0.3333'。


>>> '{:.4f}'.format(1/3)
'0.3333'
>>> '{:4f}'.format(100)
'100.000000'#目前没有发现整数是啥用处

数字进制转换

第六种用法是数字的进制输出。Python 支持将整数转换为二进制、八进制、十进制或十六进制字符串。通过指定格式说明符(如 b、o、x),可以方便地进行进制转换。例如,'{:b}'.format(18) 输出 '10010'(二进制),'{:o}'.format(18) 输出 '22'(八进制),'{:x}'.format(18) 输出 '12'(十六进制)。


二进制
 b 
八进制 o 
十进制 
十六进制
 x
'18的二进制:{:b}'.format(18)
'18的二进制:10010'
>>> '18的八进制:{:o}'.format(18)
'18的八进制:22'
>>> '18的十六进制:{:x}'.format(18)
'18的十六进制:12'

数字千分位格式化

第七种用法是数字的千分位划分。在处理大数字时,使用 {:,} 格式可以自动添加千分位分隔符,提高数字的可读性。例如,'{:,}'.format(19012390123) 会输出 '19,012,390,123'。


>>> '{:,}'.format(19012390123)
'19,012,390,123'

序列下标访问格式化

第八种用法是通过下标实现格式化。对于列表或元组等序列类型,可以在模板中使用 {0[0]} 这样的语法,直接访问序列中指定索引的元素。例如,'I am {0[0]},age:{0[1]}'.format(person),其中 person 是一个列表,可以提取其第一个和第二个元素进行输出。


>>> person=['Anxc',18]
 'I am {0[0]},age:{0[1]}'.format(person)
'I am Anxc,age:18'
>>> x=[12,13]
>>> 'I am {0[0]},age:{1[1]}'.format(person,x)
'I am Anxc,age:13'

对象属性访问格式化

第九种用法是通过对象的属性来实现格式化。虽然本文未深入讲解 Python 类,但 format() 支持通过 {object.attribute} 的形式访问对象属性。这在处理复杂数据结构时非常有用,可以直接从对象中提取所需信息进行格式化输出。

总结

总结:本文详细介绍了 Python 中 format() 函数的多种格式化输出技巧,包括位置参数、关键字参数、对齐方式、数字精度、进制转换、千分位分隔符、下标访问以及对象属性访问。掌握这些技巧,可以帮助开发者更高效地处理字符串格式化任务,提升代码质量和可读性。

以上所述是小编给大家介绍的 Python 中 format() 格式输出全解,希望对大家有所帮助。如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对本站网站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。