打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
F

Python 3.6 开始,F-string 是格式化字符串的新语法。相对于 %-formatting、 str.format() 格式化方式,它不仅更易读,更简洁,不易出错,而且速度更快。

我们首先了解下格式化字符串语法的发展历史...

历史中的格式化字符串

Python 3.6 之前,有两种字符串格式化方法:%-formatting 和str.format() 。接下来,我们首先回顾一下这两种字符串格式化的方式。

% - formatting

Python 中字符串对象支持使用 运算符的内置操作,可以使用它实现格式化字符串,如下。

如果格式化字符串中需要插入多个变量,我们可以使用元组的形式传入变量,如下:

%-formatting 的不足

不难发现,随着字符串的长度的增长,上面看似简洁易读的代码,会显得冗长,易读性变差,如下:

str.format()函数

从 Python 2.6 开始又引入了另一种字符串格式化的方法 str.format()函数,它是对 %-formatting 的改进,基本语法是以 {} 来代替以前的 % 。 str.format() 函数支持通过索引位置、关键字、对象属性和下标等多种方式使用。

使用 str.format(),替换字段用大括号标记,如下:

通过引用其索引位置来以任何顺序引用变量:

如果插入变量名称,则会获得额外的能够传递对象的权限,然后在大括号之间引用参数和方法,如下:

也可以使用**来用字典来完成字符串格式化,如下:

str.format() 的不足

使用str.format() 的代码比使用%-formatting 的代码更易读,更灵活,但当处理多个参数和更长的字符串时,str.format() 仍然非常冗长。

F-Strings

Python 3.6 开始引入了一种改进Python 格式字符串的新方法——F-Strings。也称为“格式化字符串常量”。

F-Strings 在形式上是以 f 或 F 修饰符引领的字符串(f'xx' 或 F'xx'),以大括号 {} 表明被替换的字段,F-Strings 在本质上并不是字符串常量,而是一个在运行时运算求值的表达式,表达式在运行时进行渲染,然后使用__format__协议进行格式化。

语法与str.format() 使用的语法类似,但更加简洁,灵活,如下:

由于F-Strings 是在运行时进行渲染的,因此可以将任何有效的Python表达式放入其中,如下:

同时,F-Strings 可以调用函数,在运行时,大括号内的表达式将在其自己的作用域中进行计算求值,然后将其与其余字符串连接在一起。

另外,F-string 大括号内也可填入lambda 表达式,但lambda 表达式中的'' 会被 F-string 误认为是表达式与格式描述符之间的分隔符,因此可能会导致一些问题,比如:

为避免歧义,我们需要将lambda表达式置于括号圆括号 ()中,如下:

著作权归作者所有
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python字符串格式化问题:%、format()与f-strings
Python 入门 – 使用字符串
f-string: 改进的 Python 字符串格式化语法
Python 字符串连接方法:一文就够了
python格式化输出:f-string格式化输出
Python基础教程(补中秋的文章)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服