python字符串_Python 格式化字符串的最佳姿势

对于用 Python 处理数据和文本的同学一定经常要和字符串格式化打交道,少不了要打一堆 %

这种重复性的动作常常令人厌烦。起初我也是这样觉得,但现在不了。这当然不是因为被虐习惯了,而是我发现相比用 % 进行字符串格式化,有更好用的方法,今天就给大家分享一下。

在进入正题之前,还是应该来回顾一下之前我们是怎么格式化字符串的。

% 格式化 第一种就是上古时代的方法,Python2.6 以前的独霸天下的 "%" 操作符 :

b75d9678f03eeab8359b54c4db56a748.png

在我当初刚学 Python 的时候,我用了一次就放弃了,因为我想,如果像下面这样:

b66a5daabf2015e47347d0b7ef106203.png

如果经常出现上面这样的情况(实际上真的有可能),我选择狗带...我的忍耐限度最多两个,超过两个我就要抓狂了6a1c9128dfbf7eb52a9f8f900a1791c6.png

format 格式化

第二种就是我常用的 'format'。Python2.6 引入,性能比 % 更强大。大概有三种写法:

a) 替换字段直接用大括号

1a40107477a477cfd4e12c4bca8a0545.png

b) 通过大括号 + 索引引用变量

af5116f51440627fa2bb77ec1ef71d70.png

c) 使用键值对的方式

f119681da760a97dcbb9522c346382f4.png

但是我依然有点受不了,format 的大括号和变量名分开,当变量多的时候也是会容易把我搞晕,即使是使用键值对的方式,也是一样的……

因此每当我对字符串进行格式化,就感觉在一种醉酒的状态下……直到我找到了它 :

formatted string literals

它是在 Python3.6 新加的字符串格式化方法,这种方法是在字符串前面加上 "f",大括号直接使用变量,所以又叫 'f-strings'

17c9f1ba73a90d0d1171b63475a15fea.png

前面加了 f 的字符串,可以直接在其中通过大括号插入各种变量。而这还只是最简单的用法。

它还可以进行内联运算,也就是大括号里面还可以写算术表达式:

df16892ac952cfcb40f16a578b5e175d.png

它还可以直接调用函数

71e9c1e8cc22ec7f54632a65187a13b3.png

当然 内置函数也是可以直接调用 的:

c9e5a2b4c304b5ec6ce723bb25cfdef6.png

总而言之就是: 27c3f4b5ca96c4b84d6244f4ee466b99.png

而且,相比于 '%' 和 'format',f-string 的性能更好,运行速度更快,如果你的 Python 是 3.6 及以上的,非常建议你用 f-string!

当然功能不止于此,我就不一一演示了。 更多的使用欢迎去看官方文档,学起来更贴心:

https://docs.python.org/3/reference/lexical_analysis.html#f-strings

今天的分享就到这里,欢迎大家留意讨论~

作者:Rocky0429 

来源:Python空间


9432182b32cd539a4841c9c95818adb9.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值