Python格式化字符串学习笔记

发布于:2025-05-14 ⋅ 阅读:(16) ⋅ 点赞:(0)

Python格式化字符串学习笔记

在Python中,格式化字符串是一种非常强大的功能,它允许你将变量或表达式的值嵌入到字符串中。Python提供了多种格式化字符串的方法,每种方法都有其优点和适用场景。以下是详细介绍:

1. f-string(格式化字符串字面量)

f-string 是从Python 3.6开始引入的一种新的字符串格式化方法,它非常简洁且易于使用。

语法

f"字符串内容 {变量或表达式}"

示例

name = "Alice"
age = 30
print(f"My name is {name} and I am {age} years old.")
# 输出: My name is Alice and I am 30 years old.

特点

  • 简洁性:直接在字符串中嵌入变量或表达式。
  • 性能:f-string 的性能通常优于其他格式化方法。
  • 可读性:代码更易于阅读和理解。

注意事项

  • f-string 是从Python 3.6开始支持的,如果你使用的是早期版本的Python,需要使用其他格式化方法。
  • f-string中的表达式可以是任何有效的Python表达式,包括函数调用、算术运算等。

2. str.format 方法

str.format 是一种更通用的字符串格式化方法,适用于Python 2.6及以上版本。

语法

"字符串内容 {}".format(变量或表达式)

示例

name = "Alice"
age = 30
print("My name is {} and I am {} years old.".format(name, age))
# 输出: My name is Alice and I am 30 years old.

特点

  • 通用性:适用于Python 2.6及以上版本。
  • 灵活性:可以通过索引和关键字参数来控制格式化的内容。
  • 复杂格式化:支持复杂的格式化操作,如对齐、填充、精度控制等。

示例(复杂格式化)

# 对齐和填充
print("{:<10} {:>10}".format("left", "right"))
# 输出: left      right

# 精度控制
pi = 3.141592653589793
print("Pi is approximately {:.2f}".format(pi))
# 输出: Pi is approximately 3.14

3. % 格式化

% 格式化是Python中最早支持的字符串格式化方法,适用于Python 2.x和Python 3.x。

语法

"字符串内容 %s %d %f" % (变量或表达式)

示例

name = "Alice"
age = 30
pi = 3.141592653589793
print("My name is %s and I am %d years old. Pi is approximately %.2f" % (name, age, pi))
# 输出: My name is Alice and I am 30 years old. Pi is approximately 3.14

特点

  • 兼容性:适用于Python 2.x和Python 3.x。
  • 简洁性:语法简单,易于使用。
  • 限制:格式化选项相对较少,不如 str.format 灵活。

4. 模板字符串(string.Template

模板字符串是一种更简单的字符串格式化方法,适用于需要用户输入的场景。

语法

from string import Template
template = Template("字符串内容 $变量")
template.substitute(变量=)

示例

from string import Template
template = Template("My name is $name and I am $age years old.")
print(template.substitute(name="Alice", age=30))
# 输出: My name is Alice and I am 30 years old.

特点

  • 安全性:适用于需要用户输入的场景,可以避免格式化错误。
  • 简单性:语法简单,易于理解。

5. 选择合适的格式化方法

  • f-string:如果你使用的是Python 3.6及以上版本,推荐使用f-string,因为它简洁、易读且性能高。
  • str.format:如果你需要更复杂的格式化操作,或者需要兼容Python 2.x,可以使用 str.format
  • % 格式化:如果你需要快速格式化字符串,且不需要复杂的格式化选项,可以使用 % 格式化。
  • 模板字符串:如果你需要用户输入的场景,推荐使用模板字符串,因为它更安全。

总结

Python提供了多种字符串格式化方法,每种方法都有其适用场景。选择合适的格式化方法可以让你的代码更简洁、更易读且更高效。以下是推荐的使用顺序:

  1. f-string(Python 3.6及以上版本)
  2. str.format
  3. % 格式化
  4. 模板字符串