当前位置:首页 > Python > 正文

Python字符串格式化详解(从入门到精通的4种主流方法)

Python字符串格式化 的世界里,将变量、数字或其他数据类型嵌入字符串中是日常开发中最常见的操作之一。无论你是刚接触编程的小白,还是有一定经验的开发者,掌握字符串格式化的多种方式都能让你的代码更简洁、可读性更强。

Python字符串格式化详解(从入门到精通的4种主流方法) Python字符串格式化  f-string格式化 %格式化方法 format方法 第1张

1. 使用 % 格式化方法(旧式但兼容性好)

这是 Python 最早期的字符串格式化方式,灵感来自 C 语言的 printf 函数。虽然现在不推荐作为首选,但在一些老项目中仍常见。

name = "小明"age = 25# 使用 %s 表示字符串,%d 表示整数message = "你好,我叫 %s,今年 %d 岁。" % (name, age)print(message)  # 输出:你好,我叫 小明,今年 25 岁。

注意:不同数据类型需使用对应的格式符,如 %s(字符串)、%d(整数)、%.2f(保留两位小数的浮点数)等。

2. 使用 .format() 方法(灵活且功能强大)

从 Python 2.7 开始引入的 .format() 方法,比 % 更加灵活,支持位置参数、关键字参数和复杂表达式。

name = "李华"score = 95.678# 按位置填充msg1 = "{} 考了 {:.2f} 分。".format(name, score)print(msg1)  # 输出:李华 考了 95.68 分。# 使用关键字参数msg2 = "{student} 考了 {grade:.2f} 分。".format(student=name, grade=score)print(msg2)  # 同样输出:李华 考了 95.68 分。

这种 format方法 非常适合处理复杂的模板字符串,尤其在生成 HTML 或日志信息时非常实用。

3. 使用 f-string(推荐!Python 3.6+)

从 Python 3.6 开始,官方引入了 f-string格式化(也称“格式化字符串字面量”),它语法简洁、性能优越,是目前最推荐的方式。

name = "王芳"count = 100price = 19.99# 直接在字符串前加 f,大括号内写变量名result = f"{name} 购买了 {count} 件商品,总价为 ¥{price * count:.2f}。"print(result)  # 输出:王芳 购买了 100 件商品,总价为 ¥1999.00。

f-string 不仅支持变量,还能直接写表达式、调用函数,甚至嵌套逻辑,极大提升了开发效率。

4. 使用 Template(安全但较少用)

Python 的 string.Template 类提供了一种更安全的字符串替换方式,特别适用于用户输入不可信的场景(如网页模板),防止代码注入。

from string import Templatetmpl = Template("欢迎 $user 登录系统!")output = tmpl.substitute(user="张三")print(output)  # 输出:欢迎 张三 登录系统!

虽然使用频率较低,但在某些安全敏感的项目中,Template 是一个值得了解的选项。

总结与建议

  • 如果你使用的是 Python 3.6 及以上版本,**强烈推荐使用 f-string** —— 它简洁、高效、易读。
  • 维护旧项目时可能会遇到 %.format(),理解它们有助于阅读遗留代码。
  • 需要高安全性(如处理用户输入)时,可考虑 string.Template

掌握这四种 Python字符串格式化 方法,你就能在各种场景下游刃有余地处理文本输出问题。赶紧在你的项目中试试 f-string 吧!