示例:
name = "forbearing"
age = 18
print("my name is " + name + ", and i am " + str(age) + " years old.")
print("my name is", name, ", and i am", age, "years old.")
print("my name is %s, and i am %d years old." % (name, age))
print(f"my name is {name}, and i am {age} years old.")
print("my name is {}, and i am {} years old.".format(name, age))
运行结果:

1. + 拼接:必须都是字符串,所以要 str(age)
print("my name is " + name + ", and i am " + str(age) + " years old.")
- +是字符串拼接。
- 规则很硬:“字符串” + 变量 两边必须都是 str。
- age 是 int,不能直接和字符串相加,所以要 str(age) 转成字符串。
- 常见报错原因:"i am " + age(str 和 int 不能相加)。
2. print 多参数:自动转字符串,但默认会加空格
print("my name is", name, ", and i am", age, "years old.")
- 这里不是“拼接”,而是 print() 接收了多个参数。
- print 会把每个参数都转成可显示文本(所以 age 不用 str())。
- 默认用空格把参数隔开:sep=" ",所以输出里会出现一些空格。
- 如果你想控制输出样式,可以改 sep 或 end:
print("a", "b", sep="-") # a-b
print("x", end="") # 不换行
print("y") # 接着输出
3. % 格式化:旧式占位符写法
print("my name is %s, and i am %d years old." % (name, age))
- 先写一个“模板字符串”,里面放占位符:
- %s:填入字符串(很多类型也能用 %s,会转成字符串)
- %d:填入整数
- 右边用一个元组 (name, age) 按顺序把值塞进去。
% 常见的形式
| 格式符号 | 转换 |
|---|---|
| %s | 字符串 |
| %d | 有符号的十进制整数 |
| %f | 浮点数 |
| %c | 字符 |
| %u | 无符号十进制整数 |
| %o | 八进制整数 |
| %x | 十六进制整数(小写ox) |
| %x | 十六进制整数(大写ox) |
| %e | 科学计数法(小写’e’) |
| %e | 科学计数法(大写’e’) |
| %g | %f和%e的简写 |
| %g | %f和%e的简写 |
4. f-string:最常用、最推荐
print(f"my name is {name}, and i am {age} years old.")
- 字符串前加 f,然后用 {} 包变量或表达式。
- {} 里不只能放变量,也能放表达式/函数调用:
print(f"next year: {age + 1}")
print(f"upper: {name.upper()}")
- 也支持格式控制(例如保留两位小数、补零、对齐):
x = 3.14159
print(f"{x:.2f}") # 3.14
print(f"{age:05d}") # 00018
5. format() 格式化
print("my name is {}, and i am {} years old.".format(name, age))
- {} 是占位符,.format(…) 按顺序填进去。
- 支持命名参数,模板更清晰:
print("my name is {n}, and i am {a} years old.".format(n=name, a=age))
- 也支持格式控制(和 f-string 类似):
x = 3.14159
print("{:.2f}".format(x)) # 3.14
总结
- +:真的在拼字符串,所以 int 必须 str()
- print(a, b, c):不是拼接,是打印多个参数,默认加空格
- % / format / f-string:格式化(模板 + 填值),通常更清晰
- 日常推荐:f-string
到此这篇关于python实现字符串格式化的五种方法的文章就介绍到这了,更多相关python字符串格式化内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论