Python f-string 格式化详解:语法、宽度与精度控制

白榆
白榆
发布时间:2026-10-13| 4人浏览过
原创

本文详细介绍 Python 中 f-string 格式化的基本语法与高级特性。涵盖替换字段的使用、空字段的注意事项、引号冲突处理,以及针对字符串和数字的宽度、对齐方式、填充符号和精度控制。通过具体示例解析冒号后限定符的书写规则,帮助开发者掌握高效、简洁的字符串格式化技巧。

f-string 基础语法与替换字段

f-string 是 Python 中一种最新的字符串格式化方式,属于字符串格式化的一种实现。本文整理并讲解其基本用法。

基本写法无需限定宽度,格式为 f"xxxx{ 替换字段 }xxx"。

支持在字符串中放置多个替换字段。

对于数字和字符串,转换时可以使用限定宽度,格式为 f"xxx{ 转换字段 :限定符号 }xxx"。

同样支持包含多个替换字段的写法。

使用注意事项与引号处理

以下是使用 f-string 时的注意事项汇总:

转换字段内的表达式不能为空。

1)若编写了空字段,部分编辑器(如 PyCharm)会显示红线报错提示。

2)此处“空”并非指空数据类型,例如空字符串、空列表、空字典或函数返回空值等均不属于此处的非法空字段。

若需将转换字段内的表达式结果用双引号包裹,可采用以下方法:

1)若希望整个字段被双引号包围,可在外层使用转义符(\")。

2)使用 repr() 函数处理表达式。

3)在字段末尾添加 !r,其效果等同于调用 repr() 函数。

替换字段内部的字符引号不得与外部格式化字符串字面值所使用的引号发生冲突。

lambda 表达式在替换字段中必须显式添加圆括号。

替换表达式可以包含换行符(例如在三引号字符串中),但严禁包含注释。

字符串与数字的宽度及精度控制

以下是对字符串及数字类型使用限定符的具体说明:

字符串限定示例:f ' { "ShangHai" : * > 15 } '。

1)冒号左侧为替换字段。

2)冒号右侧为限定符。

关于宽度限定的规则:

1)使用正整数来限定左侧字符串的显示宽度。

2)该宽度包含字符本身的长度。

3)最终显示宽度取限定值与字符串实际长度中的较大者。

4)宽度限定符可以单独出现,也可以省略不写。

关于对齐方式的规则:

1)符号加在宽度左侧,其中 > 表示左对齐,< 表示右对齐,^ 表示居中对齐。

2)对齐操作是在指定的宽度范围内进行的。

3)对齐符号可以省略,默认情况下为左对齐。

关于填充符号的规则:

1)填充符号写在紧挨冒号(:)右侧,用于填充宽度剩余的空格。

2)可以是键盘上可输入的任意字符。

3)填充符号必须与对齐符号同时出现。

4)只能指定一个填充符号,也可以省略,默认填充字符为空格。

若整数或浮点数右侧未添加浮点数标志 f,系统将使用限定字符串宽度的方式来处理,而不会限制小数精度。

十进制浮点数的格式限定示例:f " { 23.5 : * < 10 .2f } "。

1)在字符串格式基础上,右侧添加 . 精度标志及 f。

2).精度用于限定小数位数,f 代表浮点数类型。

3)书写顺序为先限定宽度,后限定精度。

总结:以上介绍了 f-string 格式化的基本操作方法。掌握语法规则后,建议多加练习以发现潜在问题。例如,冒号后的填充符必须紧挨冒号,若不慎插入空格,再加符号就会变成两个符号,导致格式错误。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。