随笔 - 12, 文章 - 0, 评论 - 0, 阅读 - 121

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

格式化输出

Posted on   小熊_努力学习版  阅读(14)  评论(0编辑  收藏  举报

格式化输出:指的是将数据按照某种格式、排版或模板进行输出,以便更好的展示结果数据。
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()
  • 安全性需求:使用模板字符串。
相关博文:
阅读排行:
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 数据并发安全校验处理工具类
点击右上角即可分享
微信分享提示