PyThon编程入门:了解python format格式化函数的使用

Python的format()是比%更灵活、可读性更好的字符串格式化方法,支持位置索引、命名参数及格式说明符(如{:.2f}、{:>10}),兼顾兼容性与可维护性。

Python 的 format() 是字符串格式化的常用方法,比旧的 % 格式化更灵活、可读性更好,也比 f-string(Python 3.6+)更早普及,适合理解格式化逻辑和兼容老版本代码。

基础用法:按位置填充

最简单的形式是用花括号 {} 占位,然后在字符串后调用 .format() 传入对应值:

示例:

"Hello, {}! You have {} new messages.".format("Alice", 5)
# 输出:Hello, Alice! You have 5 new messages.

也可以显式指定索引,实现重复使用或乱序:

  • "{0} likes {1}, and {0} also likes {2}".format("Tom", "pizza", "coffee")
  • 索引从 0 开始,{0} 表示第一个参数,可多次出现

命名参数:提升可读性

当参数较多或含义不明确时,用关键字参数更清晰:

示例:

"{name} is {age} years old, lives in {city}.".format(
    name="Leo", age=28, city="Shanghai"
)

这样不用记顺序,维护和调试都更方便,尤其适合模板类字符串。

格式说明符:控制数字、对齐与精度

在花括号中加入冒号 : 后可添加格式指令,比如:

  • {:.2f} → 保留两位小数(如 3.14153.14
  • {:>10} → 右对齐,总宽 10 字符(空格补足)
  • {: → 左对齐字符串,占 8 位
  • {:05d} → 整数不足 5 位时前面补 0(如 4200042

组合示例:

"Price: ${:.2f}, Qty: {:04d}, Status: {:>8}".format(19.995, 7, "In stock")
# 输出:Price: $20.00, Qty: 0007, Status: In stock

嵌套表达式与对象属性访问(进阶)

format() 支持访问对象属性和调用简单方法(不带参数):

class User:
    def __init__(self, name, score):
        self.name = name
        self.score = score

u = User("May", 95.6) "{u.name} scored {u.score:.1f}".format(u=u)

输出:May scored 95.6

注意:不能在 format 中执行任意表达式(如 {u.score * 1.1} 不合法),这类计算需提前完成。

基本上就这些。掌握位置、命名、格式符三类用法,就能覆盖绝大多数字符串拼接和排版需求。不复杂但容易忽略细节,多写几次就顺了。