Python 中的字符串格式是创建动态和格式化文本输出的基本技术。
多年来,Python 已经发展到提供多种字符串格式化方法,每种方法都有其独特的功能和用例。
旧格式:%
Python 中最古老的字符串格式化方法之一是使用 % 运算符。这种风格让人想起 C 语言中的 sprintf 函数,其工作原理是在字符串中嵌入格式说明符,然后使用 % 运算符替换值。
name = "Alice"
age = 30
formatted_string = "Hello, %s. You are %d years old." % (name, age)
在此示例中, %s 是字符串的占位符, %d 是十进制(整数)的占位符。尽管方法简单,但可能不太直观且容易出错,尤其是在参数众多的情况下。
str.format()方法
该 str.format() 方法在 Python 2.6 中引入,为字符串格式设置提供了一种更强大、更易读的方法。它使用大括号 {} 作为字符串中的占位符,并提供一系列格式和对齐功能。
name = "Alice"
age = 30
formatted_string = "Hello, {}. You are {} years old.".format(name, age)
该 format 方法更灵活,支持多种格式选项,例如填充、对齐、编号等。
F 字符串(格式化的字符串文本)
在 Python 3.6 中,引入了 f 字符串或格式化的字符串文字,进一步简化了字符串格式的语法。f 字符串以 f 字符串为前缀 f ,并使用大括号,其中包含替换为其值的表达式。
name = "Alice"
age = 30
formatted_string = f"Hello, {name}. You are {age} years old."
F 字符串不仅更具可读性,而且在运行时速度更快,因为它们在运行时被评估,然后进行格式化。它们还允许内联表达式,这非常方便。
格式设置选项
所有这些格式设置方法都支持用于控制格式的各种选项。这包括指定字段宽度、对齐方式、填充、数字格式等。
例如,使用两个小数位设置数字的格式:
- 使用 % : "%.2f" % 3.14159 给出 '3.14' .
- 使用 format() : "{:0.2f}".format(3.14159) 给出 '3.14' .
- 使用 f-string: f"{3.14159:0.2f}" gives '3.14' .