如何在 Python 中格式化字符串(f 字符串和格式)
学习 Python 中最好的字符串格式化技术。将现代 f 字符串、format() 和百分比格式与代码示例进行比较。
概述
格式化字符串是渲染消息内的变量、输出日志、打印控制台调试和构建网页的日常必需品。多年来,Python 显着发展了字符串格式,提供了多种选项来安全、清晰地构建动态文本表示。
在现代 Python (3.6+) 中,标准且最流行的方法是使用 f 字符串(格式化字符串文字)进行格式化。通过在字符串前添加“f”或“F”前缀,您可以将 Python 表达式或变量直接嵌入到大括号“{}”中。这些表达式在运行时进行计算,使 f 字符串比旧的格式化方法更快且更具可读性。
较旧的 Python 代码库可能会使用“.format()”方法或百分比“%”格式。虽然仍然受到支持,但通常不鼓励他们使用新代码。 f 字符串还支持强大的内联格式说明符,使您能够控制小数精度(例如“{value:.2f}”)、对齐文本或直接在字符串变量内设置日期格式。
代码和执行输出
该脚本演示了使用 f 字符串打印动态文本块、格式化浮点浮点数以及使用 .format()。
format_strings.py
在编辑器中尝试name = "Alice"
age = 30
pi = 3.14159
# 1. Using modern f-strings (Recommended)
greeting_f = f"Hello, my name is {name} and I am {age} years old."
print("f-string:", greeting_f)
# 2. formatting floats (2 decimal places precision)
precision_f = f"Pi rounded: {pi:.2f}"
print(precision_f)
# 3. Using the older .format() method
greeting_format = "Hello, my name is {} and I am {}.".format(name, age)
print(".format():", greeting_format)端子输出
f-string: Hello, my name is Alice and I am 30 years old.
Pi rounded: 3.14
.format(): Hello, my name is Alice and I am 30.逐步实施
- 在字符串文字中添加字符 f 前缀(例如,f'Hello...')。
- 直接在字符串内的大括号 {} 内插入变量或表达式。
- 使用 :.2f 等格式规范来处理大括号内的十进制格式。
常见问题解答
f 字符串比 .format() 和 % 格式化更快吗?
是的,f 字符串在运行时作为优化的字节码操作进行评估,这使得它们比 .format() 和 % 运算符更快。
我可以在 f 字符串内运行函数或计算表达式吗?
是的,任何有效的 Python 表达式(包括数学运算、函数调用和字典查找)都可以在大括号内进行计算。
相关主题
推荐的 Python 资源
通过相关的交互式教程、备忘单和代码比较来扩展您的知识。