Python字符串格式化详解:百分号与Format两种方式对比

小石头
小石头
发布时间:2026-10-13| 4人浏览过
原创

本文深入解析Python中两种主要的字符串格式化方式:传统的百分号(%)方式与更现代的format方式。详细说明了百分号格式化的语法结构、对齐方式、宽度精度控制及各类类型码(s, r, c, o, x, d)的具体行为,并对比了format方式的多种传参技巧。文章通过代码示例展示了两种方法的实际效果,帮助开发者根据场景选择合适方案。

本文主要介绍Python中字符串格式化的两种核心实现方式,供开发者参考。

在字符串拼接场景中,特定格式化方式具有更优的性能表现。

Python支持两种字符串格式化路径:百分号(%)方式与format方式。

百分号方式是较早出现的机制,而format方式作为较新的标准,旨在逐步替代旧式写法,目前两者在代码中并存使用。

1、百分号(%)格式化方式

其基础语法格式为:%[(name)][flags][width].[precision]typecode

  • (name)为可选参数,用于指定要选取的字典键名。
  • flags为可选参数,具体可选值包括:
    • + 标志表示右对齐:正数前添加正号,负数前添加负号。
    • - 标志表示左对齐:正数前不添加符号,负数前添加负号。
  • width为可选参数,指定输出字符占用的最小宽度。
  • .precision为可选参数,指定小数点后保留的位数。
  • typecode为必选参数,用于定义数据类型转换规则。
    • s类型码:调用传入对象的__str__方法获取返回值,并按指定位置格式化输出。
    • r类型码:调用传入对象的__repr__方法获取返回值,并按指定位置格式化输出。
    • c类型码:将整数转换为对应的Unicode字符,有效范围限制在0 <= i <= 1114111(10进制)。
    • o类型码:将整数转换为八进制表示形式,并格式化到指定位置。
    • x类型码:将整数转换为16进制表示形式,并格式化到指定位置。
    • d类型码:将整数或浮点数转换为十进制表示形式,并格式化到指定位置。
>>> s = 'i am %s,age %d' %('cai',18)

>>> print(s)

i am cai,age 18

 

>>> s = 'i am %(n1)s,age %(n2)d' %{'n1':'cai','n2':18}

>>> print(s)

i am cai,age 18

 

>>> s = 'i am %(n1)+10s,age %(n2)d' %{'n1':'cai','n2':18}

>>> print(s)

i am    cai,age 18

 

>>> s = 'i am %(n1)+10s,age %(n2)10d' %{'n1':'cai','n2':18}

>>> print(s)

i am    cai,age     18

 

>>> s = "i am %.3f abcd" %1.2

>>> print(s)

i am 1.200 abcd 

2、format格式化方式

i1 = "i am {},age {} ,{}".format('cairui',18,'kk')

print(i1)

  i am cairui,age 18 ,kk

 

i1 = "i am {0},age {1} ,{0}".format('cairui',18)

print(i1)

  i am cairui,age 18 ,cairui

 

i1 = "i am {name},age {age} ,{name}".format(name='cairui',age=18)

print(i1)

  i am cairui,age 18 ,cairui

 

i1 = "i am {:s},age {:d} ,{:f}".format('cairui',18,6.1)

print(i1)

  i am cairui,age 18 ,6.100000 

以上内容为本文核心知识点,希望能为读者的学习提供实用帮助,欢迎继续支持本站。

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

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 算法库。