常见的字符串格式化方式
在写代码时,经常需要把变量和文字拼在一起。比如想输出“你好,我是小明,今年25岁”,而“小明”和“25”是变量,这时候就不能靠简单的加号拼接了,得用更聪明的办法。
目前主流的字符串格式化方式有好几种,用对了能让代码更清晰、更易读。
1. 百分号 % 格式化
这是比较老但依然常见的写法,源自 C 语言的 printf 风格。
name = "小明"
age = 25
print("你好,我是%s,今年%d岁" % (name, age))其中 %s 表示字符串,%d 表示整数。按顺序把变量放进括号里,对应替换即可。适合简单场景,但参数一多就容易搞混顺序。
2. str.format() 方法
这是 Python 2.7 之后推荐的方式,比百分号更灵活。
name = "小红"
age = 23
print("你好,我是{},今年{}岁".format(name, age))也可以指定顺序:
print("我是{1},今年{0}岁,没错,我叫{1}".format(age, name))还能用名字:
print("我是{name},今年{age}岁".format(name="李雷", age=28))这种方式可读性更强,尤其适合长句子。
3. f-string(推荐)
从 Python 3.6 开始,f-string 成为最流行的方式。它写起来最直观。
name = "韩梅梅"
age = 24
print(f"你好,我是{name},今年{age}岁")变量直接写在花括号里,前面加个 f 就行。甚至能做简单计算:
price = 15
count = 3
print(f"总价:{price * count} 元")调试时也方便:
print(f"变量 age 的值是:{age=}") # 输出:age=24大多数新项目都建议优先使用 f-string,简洁又高效。
实际场景对比
假设你要生成一条订单通知:
user = "张三"
item = "咖啡机"
total = 599用三种方式写出来:
# 百分号
print("用户%s购买了%s,共%d元" % (user, item, total))
# format
print("用户{}购买了{},共{}元".format(user, item, total))
# f-string
print(f"用户{user}购买了{item},共{total}元")明显最后一个看起来最顺眼,也不容易出错。
掌握这些格式化方法,写提示信息、日志、界面文本都会轻松不少。现在的新代码,直接用 f-string 基本不会出错。