Python 字符串格式化:从老方法到 f-string 的高效进阶55


Python 提供了多种强大的方法来格式化字符串,从早期的 `%` 操作符到 `()` 方法,再到如今被广泛使用的 f-string (formatted string literal),每种方法都有其优缺点和适用场景。本文将深入探讨 Python 字符串格式化的各种方法,并比较它们的效率和可读性,最终帮助你选择最适合你项目的方法。

1. 老式 `%` 操作符

这是 Python 早期版本中常用的字符串格式化方法,它使用 `%` 作为格式化操作符,类似于 C 语言中的 printf 函数。这种方法虽然简洁,但可读性和可维护性较差,尤其是在格式化多个变量时,容易出错。```python
name = "Alice"
age = 30
print("My name is %s and I am %d years old." % (name, age))
```

在这个例子中,`%s` 代表字符串,`%d` 代表整数。`%` 后面的元组提供了需要格式化的变量。这种方法对于简单的格式化需求还算方便,但是当需要格式化多个变量或进行复杂的格式控制时,代码就会变得难以理解和维护。

2. `()` 方法

`()` 方法是 Python 2.6 版本引入的,它相比 `%` 操作符提供了更清晰、更灵活的格式化方式。它使用花括号 `{}` 作为占位符,并通过参数或关键字参数进行替换。```python
name = "Bob"
age = 25
print("My name is {} and I am {} years old.".format(name, age))
print("My name is {0} and I am {1} years old.".format(name, age)) # 指定位置
print("My name is {name} and I am {age} years old.".format(name=name, age=age)) # 使用关键字参数
```

`()` 方法支持多种格式说明符,例如:`{:d}` (整数), `{:f}` (浮点数), `{:s}` (字符串), `{:x}` (十六进制), 等等。 它还可以进行对齐、填充、精度等更细致的控制。```python
price = 123.4567
print("The price is {:.2f}".format(price)) # 保留两位小数
print("The price is {:>10.2f}".format(price)) # 右对齐,宽度为10,保留两位小数
print("The price is {:

2025-05-16


上一篇:机器人控制与Python:从文件关联到代码实现

下一篇:Python高效读写Excel XLSX文件:Openpyxl与XlsxWriter深度解析