Python 字符串格式化输出的全面指南368


在 Python 中,字符串格式化是将变量和表达式嵌入到字符串中的一种强大功能。这使我们能够创建动态内容,例如报告、日志消息和用户界面文本。本文将深入探讨 Python 中字符串格式化的各种方法,从经典的字符串格式化语法到 f 字符串和模板字符串等现代方法。

经典字符串格式化

经典字符串格式化使用 % 运算符,它将替换符与表达式配对。替换符指定要插入到字符串中的表达式的类型。例如:print('我的名字是 %s,年龄为 %d' % ('John', 30))
# 输出:
# 我的名字是 John,年龄为 30

可以使用以下替换符:* %s - 字符串
* %d - 整数
* %f - 浮点数
* %c - 字符

这种方法虽然有效,但容易出错且冗长。特别是当处理复杂的表达式时,跟踪替换符和表达式的对应关系可能会很困难。

f 字符串

f 字符串是 Python 3.6 中引入的一种更现代的字符串格式化方法。它们使用 f 前缀和花括号将表达式嵌入到字符串中。例如:print(f'我的名字是 {name},年龄为 {age}')
# 输出:
# 我的名字是 John,年龄为 30

f 字符串提供了许多优点:* 更简洁易读的语法
* 支持表达式和格式说明符
* 调试更简单

模板字符串

模板字符串是 f 字符串的替代方案,自 Python 3.6 起可用。它们使用大括号将表达式嵌入到字符串中,就像 f 字符串一样。然而,它们提供了一些附加功能:* 内置转义序列(例如 换行)
* 支持多行字符串
* 与 f 字符串相比,支持更复杂的格式说明符

例如:name = 'John'
age = 30
template = '''
我的名字是 {name},
年龄为 {age},
今天是 {()}。
'''
print(template)
# 输出:
# 我的名字是 John,
# 年龄为 30,
# 今天是 2023-03-08 14:30:23.357238。

其他格式化方法

除了经典字符串格式化、f 字符串和模板字符串之外,Python 还提供了其他格式化方法,例如:* format() 方法 - 与 f 字符串类似,但语法略有不同
* () 方法 - 与 format() 方法类似,但由字符串本身调用
* strftime() 方法 - 用于格式化时间值
* num2words() 函数 - 将数字转换为单词

格式说明符

格式说明符允许我们控制插入到字符串中的表达式的外观。它们写在替换符或表达式的后面,并使用冒号分隔。例如:print('我的年龄为 {:.2f}' .format(30.1234))
# 输出:
# 我的年龄为 30.12

这个格式说明符指定将浮点数舍入小数点后两位。

Python 提供了多种字符串格式化选项,每种选项都有其优点和缺点。经典字符串格式化是一种历史悠久的有效方法,而 f 字符串和模板字符串提供了更现代、更简洁的语法。通过理解这些方法,开发人员可以创建动态、可读、可维护的字符串。

2024-10-27


上一篇:Python 字符串格式化输出的权威指南

下一篇:Python 中将 16 进制转换为字符串的全面指南