在 Python 的 str.format() 方法中,通过索引指定占位符 {} 的填充顺序时
在 Python 的 str.format() 方法中,通过索引指定占位符 {} 的填充顺序时,索引位置有一些明确的限制和注意事项。以下是关键点总结:
1. 索引必须是非负整数
索引从 0 开始,依次递增(0, 1, 2, ...)。
不能使用负数索引(如 {-1}),否则会抛出 ValueError。
示例:
python
# 正确:索引从 0 开始
result = "Name: {0}, Age: {1}".forma, 25) # 输出: "Name: Alice, Age: 25"
# 错误:负数索引
try:
result = "Name: {-1}".format("Alice") # 抛出 ValueError
except ValueError as e:
print(f"错误: {e}") # 输出: "错误: tuple index out of range"
2. 索引不能超出参数范围
如果指定的索引大于或等于 format() 方法的参数数量,会抛出 IndexError。
示例:
python
# 正确:索引在参数范围内
result = "Name: {0}, Age: {1}".format("Alice", 25) # 输出: "Name: Alice, Age: 25"
# 错误:索引超出参数范围
try:
result = "Name: {2}".format("Alice", 25) # 抛出 IndexError
except IndexError as e:
print(f"错误: {e}") # 输出: "错误: tuple index out of range"
3. 索引不能重复使用超出参数限制
同一个参数可以通过索引多次引用,但索引必须有效(不能超出参数范围)。
示例:
python
# 正确:重复使用有效索引
result = "Name: {0}, Age: {1}, Name again: {0}".format("Alice", 25) # 输出: "Name: Alice, Age: 25, Name a