f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法,该方法源于PEP 498 – Literal String Interpolation,主要目的是使格式化字符串的操作更加简便。
f-string在形式上是以 f 或 F 修饰符引领的字符串(f'xxx' 或 F'xxx'),以大括号 {} 标明被替换的字段;f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式:
While other string literals always have a constant value, formatted strings are really expressions evaluated at run time.
(与具有恒定值的其它字符串常量不同,格式化字符串实际上是运行时运算求值的表达式。)
—— Python Documentation
f-string在功能方面不逊于传统的%-formatting语句和str.format()函数,同时性能又优于二者,且使用起来也更加简洁明了,因此对于Python3.6及以后的版本,推荐使用f-string进行字符串格式化。
从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快!
在Python 3.6之前,有两种将Python表达式嵌入到字符串文本中进行格式化的主要方法:%-formatting和str.format()。
%-formatting
字符串对象具有使用%运算符的内置操作,您可以使用它来格式化字符串。
name = "tom" print("猫的名字叫%s"%name)
输出:
cat name is tom
上面的示例代码看起来足够易读,但是,一旦开始使用多个参数和更长的字符串,代码就将变得不太容易阅读。
name = "tom" age = 2 action = "迅速" disposition = "懒" print("猫的名字叫%s,今年%d岁了,抓老鼠非常%s,但是非常%s,白天总睡觉。"%(name, age, action, disposition))
输出:
猫的名字叫tom,今天2岁了,抓老鼠非常迅速,但是非常懒,白天总睡觉。
str.format()
str.format()是对%-formatting的改进。它使用正常的函数调用语法,并且可以通过对要转换为字符串的对象的__format __()方法进行扩展。
使用str.format(),替换字段用大括号标记:
name = "tom" print("猫的名字叫{}".format(name))
输出:
猫的名字叫tom
也可以通过引用其索引,以任何顺序引用变量:
name = "tom" age = 2 print("猫的名字叫{1},今年{0}岁了,今天星期{0}".format(age, name))
输出:
猫的名字叫tom,今年2岁了,今天星期2
也可以使用 ** 来用字典,巧妙的完成格式化:
cat = {"name": "tom", "age": 2} print("猫的名字叫{name},今年{age}岁了".format(**cat))
输出:
猫的名字叫tom,今年2岁了
使用 str.format() 格式化代码比使用 %-formatting 更易读,但当处理多个参数和更长的字符串时,str.format()看起来仍然非常冗长。
f-Strings:一种改进Python格式字符串的新方法
f-Strings语法与str.format()使用的语法类似,但较少细节啰嗦,只需要在格式化字符串前加f或F即可。看看这是多么容易可读:
name = "tom" age = 2 print(f"猫的名字叫{name},今年{age}岁了")
输出:
猫的名字叫tom,今年2岁了
格式化时可以使用函数:
name = "tom" age = 2 print(F"猫的名字叫{name.upper()},今年{age}岁了")
输出:
猫的名字叫TOM,今年2岁了
格式化时可以使用字典:
cat = {"name": "tom", "age": 2} print(F"猫的名字叫{cat['name']},今年{cat['age']}岁了")
输出:
猫的名字叫tom,今年2岁了
格式时可以对浮点数精度做限制:
name = "tom" age = 2.1274 print(F"猫的名字叫{name},今年{age: .2f}岁了")
输出:
猫的名字叫tom,今年 2.13岁了
总结
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 柏菲·珞叔作品集《金色大厅2》限量开盘母带ORMCD[低速原抓WAV+CUE]
- Gareth.T《sad songs(Explicit)》[320K/MP3][29.03MB]
- Gareth.T《sad songs(Explicit)》[FLAC/分轨][152.85MB]
- 证声音乐图书馆《海风摇曳·盛夏爵士曲》[320K/MP3][63.06MB]
- 龚玥《金装龚玥HQCD》头版限量[WAV分轨]
- 李小春《吻别》萨克斯演奏经典[原抓WAV+CUE]
- 齐秦《辉煌30年24K珍藏版》2CD[WAV+CUE]
- 证声音乐图书馆《海风摇曳·盛夏爵士曲》[FLAC/分轨][321.47MB]
- 群星 《世界经典汽车音乐》 [WAV分轨][1G]
- 冷漠.2011 《冷漠的爱DSD》[WAV+CUE][1.2G]
- 陈明《流金岁月精逊【中唱】【WAV+CUE】
- 群星《Jazz-Ladies1-2爵士女伶1-2》HQCD/2CD[原抓WAV+CUE]
- 群星《美女私房歌》(黑胶)[WAV分轨]
- 郑源.2009《试音天碟》24BIT-96KHZ[WAV+CUE][1.2G]
- 飞利浦试音碟 《环球群星监听录》SACD香港版[WAV+CUE][1.1G]