Python三种字符串格式化方式详解:%、format与f-string

Nora
Nora
发布时间:2026-10-15 | 2人浏览过
原创

本文详细解析Python中三种字符串格式化方式:%、format和f-string。通过具体代码案例演示了各类格式符的使用,包括数字进制转换、对齐方式及小数保留。重点对比了f-string在Python 3.6+中的便捷性与性能优势,建议新项目优先采用f-string。

Python中常用的字符串格式化输出方式主要有三种。

本文测试环境为PyCharm集成开发工具,Python版本为3.8。

第一种方式是使用百分号(%)进行格式化,该方法在官方文档中已不再推荐作为首选。

其基本语法结构为:格式字符串 % (输出项1, 输出项2, …, 输出项n)。

%c字符
%s字符串
%d带符号的整数(10)
%o带符号的整数(8)
%x或者 %X带符号的整数(16)
%f 或者 %F浮点数字

具体使用示例如下:

案例一:基础变量替换。

num1 = 20
num2 = 30
print('num1=%d, num=%d' %(num1, num2))

运行结果: num1=20, num=30

案例二:浮点数精度控制。

num = 3.141526
print('%0.2f' %num)      # 保留两位小数
print('%10.1f' %num)     # 占10个空格, 右对齐
print('%-10.2f' %num)    # 占10个空格, 左对齐

运行结果:

第二种方式是使用str类的format()方法。

其语法格式为:format(输出项[, 格式字符串]),其中格式字符串为可选参数。

案例一:基本位置索引替换。

num1 = 20
num2 = 30
print('num1={}, num2={}'.format(num1, num2))

运行结果: num1=20, num=30

案例二:通过索引指定变量顺序。

str1 = '小沐'
str2 = '小冷'
print('{0}{1}{1}{0}'.format(str1, str2))   # 从0开始对映变量值

运行结果: 小沐小冷小冷小沐

案例三:使用关键字参数。

print('{meng}{mu}'.format(mu='小沐', meng='小萌'))

运行结果: 小萌小沐

案例四:对齐与填充方式。

<左对齐
>右对齐
^中间对齐
=(只用于数字)在小数点后进行补齐
# 0:3.14    |  *:填充多出的空格(便于观察)    | 10:3.14占的位置大小
print('--{0:*<10}--{0:*^10}--{0:*>10}--{0:*=7}'.format(3.14))

运行结果:

案例五:数字进制转换。

print('十进制:{0:d},十六进制:{0:x},八进制:{0:o},二进制:{0:b}'.format(31))
#  带'#'有进制前缀
print('十六进制:{0:#x},八进制:{0:#o},二进制:{0:#b}'.format(31))   

运行结果: 十进制:31,十六进制:1f,八进制:37,二进制:11111 十六进制:0x1f,八进制:0o37,二进制:0b11111

案例六:百分比与小数位数保留。

# 转化为百分比并保留两位小数
print('百分比:{:.2%}'.format(0.555555))
# 保留两位小数
print('保留两位小数:{:.2}'.format(0.555555))

运行结果: 百分比:55.56% 保留两位小数:0.56

案例七:符号显示控制。

print('{:} *-* {:}'.format(1, -1))
# 显示符号
print('{:+} *-* {:+}'.format(1, -1))
# 若是正数,则在前面留空格
print('{: } *-* {: }'.format(1, -1))
# -数时显示-,与'{:}; {:}'一致
print('{:-} *-* {:-}'.format(1, -1))

运行结果

第三种方式是f-string(格式化字符串字面量)。

基本用法为在字符串前添加f或F前缀,即 f’{}‘。

案例一:基本变量嵌入。

name = "小沐"
age = 20
print(f'我叫{name},今年{age}岁了。')

运行结果: 我叫小沐,今年20岁了。

案例二:多行字符串处理。

name = "小沐"
age = 20
print(f'我叫{name},'
      f'今年{age}岁了。')    #  多行用法

运行结果: 我叫小沐,今年20岁了。

案例三:精度控制。

num = 3.141526
print(F'保留两位小数:{num:.2f}')

运行结果: 保留两位小数:3.14

f-string支持上述format方法中的大部分格式规范,具体可参考format部分的说明。

三种方式对比分析。

f-string全称为formatted string literals,即格式化字符串常量。

其功能等同于%-formating和str.format(),但操作更加简便,且执行速度更快。

总结。

本文介绍了Python中三种输出格式的使用方法。如需了解更多Python输出格式相关内容,建议查阅本站以往文章或继续浏览后续教程,感谢支持。

相关标签:

本站声明

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

Python 相关产品和应用

全部下载

专题列表