格式化字符串
掌握三种字符串格式化方式
重点熟练使用 f-string 格式化
能根据场景选择合适的格式化方法
核心讲解
格式化字符串用来把变量、表达式动态拼接进字符串里,让字符串输出更灵活、更易读。
(1)三种格式化方式
方式一:% 占位符(老式)用 %s 代表字符串、%d 代表整数、%f 代表浮点数,是 Python 早期的格式化方式。
优点:简单,兼容老版本
缺点:参数多时不直观,容易出错
用 {} 作为占位符,调用字符串的 format 方法传入参数。可以按位置、按名字传参。
优点:灵活,功能强
缺点:写法稍繁琐
在字符串前加 f,直接在 {} 里写变量名或表达式,是目前最常用、最直观的方式。
优点:直观、简洁、性能好、支持表达式
缺点:不支持 3.6 以下的旧版本
(2)常用格式化技巧
保留小数位数:
{:.2f}保留两位小数对齐填充:
{:>10}右对齐占 10 位千分位分隔:
{:,}数字千分位加逗号
代码示例
name = "小明"
age = 20
score = 95.5
# 1. %占位符方式
print("姓名:%s,年龄:%d,分数:%.1f" % (name, age, score))
# 2. format()方式
print("姓名:{},年龄:{},分数:{}".format(name, age, score))
# 按索引传参
print("{0}今年{1}岁,{0}的分数是{2}".format(name, age, score))
# 按名字传参
print("姓名:{n},年龄:{a}".format(n=name, a=age))
# 3. f-string方式(推荐)
print(f"姓名:{name},年龄:{age},分数:{score}")
# 支持直接写表达式
print(f"明年年龄:{age + 1}")
print(f"分数的一半:{score / 2}")
# 格式化技巧
price = 1234.5678
# 保留2位小数
print(f"价格:{price:.2f}")
# 百分比格式
rate = 0.856
print(f"通过率:{rate:.1%}")
# 千分位
num = 1234567
print(f"总数:{num:,}")
常见误区
占位符数量和参数数量不匹配:会报错,注意一一对应
f-string 引号冲突:字符串里的引号和外层引号一样时,要换一种引号或者转义
格式化符号记错:
%d是整数,不能传浮点数;%s可以接收任意类型
课后练习
用三种格式化方式分别输出:
我叫XXX,今年XX岁,身高XXcm定义商品价格为 199.99,用 f-string 格式化输出,保留两位小数,并加上 ¥ 符号
让用户输入圆的半径,计算面积,用格式化字符串输出结果,保留两位小数

