如何在 Python 中格式化字符串

PythonPythonBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

Python 的字符串格式化功能对于创建动态且可读的代码至关重要。在本教程中,我们将探索 Python 中格式化字符串的各种方法和技巧,从基本方法到更高级的技术。到最后,你将对如何在 Python 项目中有效地格式化字符串有扎实的理解。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/BasicConceptsGroup -.-> python/type_conversion("Type Conversion") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") subgraph Lab Skills python/strings -.-> lab-397999{{"如何在 Python 中格式化字符串"}} python/type_conversion -.-> lab-397999{{"如何在 Python 中格式化字符串"}} python/build_in_functions -.-> lab-397999{{"如何在 Python 中格式化字符串"}} end

字符串格式化简介

在 Python 编程的世界里,处理字符串是一项基本任务。字符串是一种无处不在的数据类型,用于表示基于文本的信息,能够有效地格式化它们对于创建可读且可维护的代码至关重要。

Python 提供了多种用于格式化字符串的方法和技巧,从基本的字符串拼接,到更高级的格式化选项。理解这些字符串格式化方法对于任何 Python 开发者来说都是必不可少的,因为它们能让你创建动态且可定制的输出,提高代码的可读性,并简化数据呈现。

在本教程中,我们将探索 Python 中可用的各种字符串格式化技术,从基础开始,逐步深入到更高级的概念。在本文结束时,你将全面理解如何在 Python 中格式化字符串,从而使你能够创建更高效、更具表现力的代码。

基本字符串格式化方法

Python 提供了几种用于基本字符串格式化的内置方法,包括:

  1. 字符串拼接:使用 + 运算符组合字符串。
  2. 字符串插值:使用 % 运算符将值插入字符串(称为“旧式”格式化)。
  3. f 字符串(格式化字符串字面量):在 Python 3.6 中引入,f 字符串提供了一种更简洁、易读的方式来格式化字符串。
  4. str.format():一种通用的方法,用于使用占位符以及位置或命名参数来格式化字符串。

这些基本的字符串格式化技术允许你将动态值合并到字符串中,使你的代码更灵活、适应性更强。

## 字符串拼接
name = "Alice"
age = 25
print("My name is " + name + " and I am " + str(age) + " years old.")

## 字符串插值
print("My name is %s and I am %d years old." % (name, age))

## f 字符串
print(f"My name is {name} and I am {age} years old.")

## str.format()
print("My name is {} and I am {} years old.".format(name, age))

这些示例展示了如何在 Python 中使用各种基本字符串格式化方法。如你所见,每种方法都有其自己的语法和优点,使你能够选择最适合你编码风格和需求的方法。

高级字符串格式化技术

虽然基本字符串格式化方法很有用,但 Python 还提供了更高级的技术,这些技术在格式化过程中提供了更大的灵活性和控制权。这些技术包括:

  1. 对齐和填充:控制固定宽度字段内字符串值的对齐和填充。
  2. 数字格式化:以特定的精度、小数位数和千位分隔符格式化数值。
  3. 日期和时间格式化:以所需的输出格式格式化日期和时间值。
  4. 自定义格式化函数:创建自己的格式化函数来处理复杂或特殊的格式化要求。

这些高级技术允许你创建更复杂、视觉上更吸引人的字符串输出,使你的代码更具可读性和专业感。

## 对齐和填充
print(f"Name: {name:>20}")  ## 右对齐,占 20 个字符
print(f"Age: {age:0>5}")  ## 右对齐,占 5 个字符,用前导零填充

## 数字格式化
pi = 3.14159
print(f"Pi: {pi:.2f}")  ## 保留两位小数格式化
print(f"Price: ${price:,.2f}")  ## 用千位分隔符和两位小数格式化

## 日期和时间格式化
import datetime
today = datetime.date.today()
print(f"Today's date: {today:%B %d, %Y}")  ## 格式化为“月份 日期, 年份”

这些示例展示了如何在 Python 中使用高级字符串格式化技术,使你能够创建更具视觉吸引力和信息丰富的输出。

通过结合基本和高级字符串格式化方法,你可以在 Python 项目中充分发挥字符串操作的潜力,从而得到更高效、可读和可维护的代码。

基本字符串格式化方法

Python 提供了几种用于基本字符串格式化的内置方法,使你能够将动态值合并到字符串中,并提高代码的可读性。让我们详细探讨这些基本技术。

字符串拼接

在 Python 中格式化字符串的最简单方法之一是通过字符串拼接,这涉及使用 + 运算符来组合多个字符串。当你需要从多个组件(如变量值或静态文本)创建单个字符串时,这种方法很有用。

name = "Alice"
age = 25
print("My name is " + name + " and I am " + str(age) + " years old.")

字符串插值(旧式格式化)

另一种基本的字符串格式化方法是字符串插值,也称为“旧式”格式化。此技术使用 % 运算符将值插入字符串,类似于其他编程语言中的 printf() 函数。

name = "Alice"
age = 25
print("My name is %s and I am %d years old." % (name, age))

f 字符串(格式化字符串字面量)

f 字符串(格式化字符串字面量)在 Python 3.6 中引入,提供了一种更简洁、易读的字符串格式化方式。使用 f 字符串,你可以直接在字符串中嵌入表达式,用花括号 {} 括起来。

name = "Alice"
age = 25
print(f"My name is {name} and I am {age} years old.")

str.format()

str.format() 方法是一种通用的字符串格式化技术,它允许你使用占位符以及位置或命名参数将值插入字符串。

name = "Alice"
age = 25
print("My name is {} and I am {} years old.".format(name, age))
print("My name is {name} and I am {age} years old.".format(name=name, age=age))

这些基本字符串格式化方法中的每一种都有其自己的语法和优点,使你能够选择最适合你编码风格和需求的方法。随着你不断学习,你将学会如何利用这些技术在 Python 应用程序中创建更动态、更具表现力的输出。

高级字符串格式化技术

虽然基本的字符串格式化方法很有用,但 Python 还提供了更高级的技术,这些技术在格式化过程中提供了更大的灵活性和控制权。这些技术使你能够创建更复杂、视觉上更吸引人的字符串输出,让你的代码更具可读性和专业感。

对齐和填充

你可以使用 f 字符串或 str.format() 方法中的对齐和填充说明符,来控制固定宽度字段内字符串值的对齐和填充。

name = "Alice"
age = 25

## 对齐
print(f"Name: {name:>20}")  ## 右对齐,占 20 个字符
print(f"Name: {name:<20}")  ## 左对齐,占 20 个字符
print(f"Name: {name:^20}")  ## 居中对齐,占 20 个字符

## 填充
print(f"Age: {age:0>5}")  ## 右对齐,占 5 个字符,用前导零填充
print(f"Age: {age:_<5}")  ## 左对齐,占 5 个字符,用下划线填充

数字格式化

Python 的字符串格式化技术还允许你使用特定的精度、小数位数和千位分隔符来格式化数值。

pi = 3.14159
price = 12345.67

## 小数精度
print(f"Pi: {pi:.2f}")  ## 保留两位小数格式化
print(f"Price: {price:.2f}")  ## 保留两位小数格式化

## 千位分隔符
print(f"Price: ${price:,.2f}")  ## 用千位分隔符和两位小数格式化

日期和时间格式化

在处理日期和时间值时,你可以使用字符串格式化以所需的输出格式显示它们。

import datetime
today = datetime.date.today()

## 日期格式化
print(f"Today's date: {today:%B %d, %Y}")  ## 格式化为“月份 日期, 年份”
print(f"Today's date: {today:%m/%d/%Y}")  ## 格式化为“MM/DD/YYYY”

自定义格式化函数

对于更复杂或特殊的格式化要求,你可以创建自己的自定义格式化函数。这些函数可以集成到你的字符串格式化过程中,以满足特定的格式化需求。

def format_currency(amount):
    return f"${amount:,.2f}"

price = 12345.67
print(format_currency(price))  ## 输出:$12,345.67

通过掌握这些高级字符串格式化技术,你可以在 Python 项目中充分发挥字符串操作的潜力,从而得到更高效、可读和可维护的代码。

总结

对于任何 Python 程序员来说,掌握 Python 中的字符串格式化都是一项至关重要的技能。在本教程中,我们涵盖了格式化字符串的基本方法和技术,从基本的字符串格式化方法到诸如 f 字符串和模板字符串等更高级的方法。有了这些工具,你可以创建更具可读性、动态性和高效性的 Python 代码。无论你是初学者还是经验丰富的 Python 开发者,理解字符串格式化都将极大地提升你的编程能力。