Python字符串格式化 f-string

在python中,如果想要将字符串与变量连接起来,比如想打印记录一个函数输入内容和输出内容的日志,一般方法有%-formatting 和 str.format() 。从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快。

使用方法:

  1. 在字符串前面加上 f

  2. 在字符串内部,将需要连接的变量用 {} 括起来即可,示例:

a = f'input:{input},output:{output}' 

f-string 的优点:

  1. 代码简洁,且变量名多的时候,不需要去数数,也没有繁琐的单引号双引号。

  2. 括号{}里面的变量,可以是字符串类型,也可以是整型、浮点型,或者是复杂类型,比如数组、词典等,会自动转换成成字符串形式。

  3. 括号{}里面还可以是函数,比如 f’数组a的长度为:{len(a)}’。一句话,只要是位于 {} 中的,都会当做 python 代码来执行。但里面只能写表达式,不能写执行语句如{a=2}之类的。

  4. f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式,速度比%-formatting 和 str.format() 都要块。

因此对于Python3.6及以后的版本,推荐使用 f-string 进行字符串格式化。

在Python 3.6之前,对字符串文本中进行格式化的主要方法是:%-formatting 和 str.format()。

%-formatting 字符串对象具有使用%运算符的内置操作,可以使用它来格式化字符串。

name = "tom"
print("猫的名字叫%s"%name)

>>> 猫的名字叫tom 

上面的代码看起来足够易读,但是,一旦开始使用多个参数和更长的字符串,代码就将变得不太容易阅读。

str.format() 是对 %-formatting 的改进,它使用正常的函数调用语法,使用str.format() ,替换字段用大括号标记。

name = "tom"
age = 2
print("猫的名字叫{1},今年{0}岁了".format(age, name))

>>> 猫的名字叫tom,今年2岁了 

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

f-Strings 一种改进Python格式字符串的新方法,只需要在格式化字符串前加 f (大小写均可)

name = "tom"
age = 2
print(f"猫的名字叫{name},今年{age}岁了")

>>> 猫的名字叫tom,今年2岁了 

f-string中引号使用存在的问题:

  1. f-string 大括号内使用的引号不能和大括号外的引号定界符引号冲突,需根据情况灵活切换使用单引号、双引号、单三引号、双三引号。

  2. 大括号外的引号还可以使用 \转义,但大括号内不能使用 \转义。

  3. f-string大括号外如果需要显示大括号,则应输入连续两个大括号{{ }};大括号内需要引号,使用引号即可。


如有错误,欢迎私信纠正,谢谢支持!

posted @ 2022-11-16 18:06  杨业壮  阅读(250)  评论(0编辑  收藏  举报