Python三种字符串格式化方式详解:%、format与f-string
本文详细解析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输出格式相关内容,建议查阅本站以往文章或继续浏览后续教程,感谢支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









