格式化输出:指的是将数据按照某种格式、排版或模板进行输出,以便更好的展示结果数据。
python提供了多种格式化输出的方式,包括最简单的+拼接,、以及%格式化、str.format()、f-string和模板格式化输出方式,在使用时,通常建议采用f-string方式。
1. % 格式化(旧式格式化)
这是 Python 早期版本的格式化方式,类似于 C 语言的 printf。
语法:
"格式化字符串" % (值1, 值2, ...)
示例:
name = "Alice"
age = 25
print("Name: %s, Age: %d" % (name, age))
常用占位符:
%s:字符串%d:整数%f:浮点数%.2f:保留两位小数的浮点数
2. str.format() 格式化
这是 Python 2.6 引入的格式化方式,功能更强大,可读性更好。
语法:
"格式化字符串".format(值1, 值2, ...)
示例:
name = "Bob"
age = 30
print("Name: {}, Age: {}".format(name, age))
高级用法:
- 按位置索引:
print("Name: {0}, Age: {1}".format(name, age)) - 按关键字参数:
print("Name: {name}, Age: {age}".format(name="Bob", age=30)) - 格式化数字:
pi = 3.14159 print("Pi: {0:.2f}".format(pi)) # 保留两位小数
3. f-string(格式化字符串字面值)
这是 Python 3.6 引入的新特性,简洁高效,推荐使用。
语法:
f"格式化字符串"
示例:
name = "Charlie"
age = 35
print(f"Name: {name}, Age: {age}")
高级用法:
- 表达式计算:
print(f"Next year, age will be {age + 1}") - 格式化数字:
pi = 3.14159 print(f"Pi: {pi:.2f}") # 保留两位小数 - 调用函数:
print(f"Name in uppercase: {name.upper()}")
4. 模板字符串(Template)
适用于简单的字符串替换,安全性较高。
语法:
from string import Template
Template("格式化字符串").substitute(变量名=值)
示例:
from string import Template
t = Template("Name: $name, Age: $age")
print(t.substitute(name="David", age=40))
特点:
- 使用
$变量名作为占位符。 - 适合处理用户输入的字符串,避免安全问题。
5. 手动拼接字符串
虽然不推荐,但在简单场景下可以使用。
示例:
name = "Eve"
age = 45
print("Name: " + name + ", Age: " + str(age))
缺点:
- 代码冗长,可读性差。
- 需要手动转换类型(如
str(age))。
总结对比
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
% 格式化 |
简单,类似 C 语言 | 功能有限,可读性差 | 旧代码兼容 |
str.format() |
功能强大,支持位置和关键字参数 | 语法稍复杂 | Python 2.6+ 通用场景 |
| f-string | 简洁高效,支持表达式和函数调用 | 仅支持 Python 3.6+ | Python 3.6+ 推荐使用 |
| 模板字符串 | 安全性高,适合处理用户输入 | 功能较弱 | 简单字符串替换 |
| 手动拼接 | 直观 | 代码冗长,易出错 | 极简单场景 |
推荐
- 初学者:优先学习
f-string,简洁易用。 - 兼容性需求:使用
str.format()。 - 安全性需求:使用模板字符串。
浙公网安备 33010602011771号