Python字符串格式化之f-string

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

1. 使用方法

  1. 在字符串前面加上 f

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

示例:

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

2. 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岁了

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

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

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

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


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值