知行编程网知行编程网  2022-03-16 10:00 知行编程网 隐藏边栏 |   抢沙发  8 
文章评分 0 次,平均分 0.0

阅读本文大概需要3分钟

菜鸟独白

Python3.6 不知道有多少同学用了,里面推出了很多新的特性,有关于语法的,有标准库的,有关于安全的!其中有一条是关于字符串的格式化处理。这新的招用法非常简洁,优雅,我们一起来看一下Pythonic的!



1.传统玩法

Python里面的字符串用法相信很多同学都知道,我们简单回顾一下:

1).用%来格式化

))


如果要格式化多的话,需要多敲几个%s 

))


但是%非常麻烦,而且不够灵活!于是Python里面推荐用下面的format方法


2).format来格式化

))


可以看的出format非常灵活,功能甩%好几条街,前面的Python入门基础文章我有详细介绍(秘籍总结】玩转Python里的字符串|上篇).

下面我们重点看看新特性!


但是功力虽强,也有烦恼!比如下面的程序:

Python3.6里新特性,你竟然不知道!


当然你可以放在一个字典里面:

.format(**person))


但是当你有一堆的数据要格式化,这样输入非常麻烦,而且费事!有没有好的办法呢!我们来看新玩法!



2.Python3里的新玩法

1).Py3.6里面增加了一种超级简单的玩法

简单到什么程度呢,即在普通字符串前添加 f 或 F 前缀,其效果类似于str.format()。比如


>>Hello Leo


当然写的大写的F也可以!是不是眼前一亮,哇这样简单!不仅如此,还有更好玩的!


2).函数里的玩法

函数返回的内容也可以格式化

Python3.6里新特性,你竟然不知道!


3).类里的玩法

Python3.6里新特性,你竟然不知道!

__str__和__repr__两个都是魔法函数,这个我前面讲过的!一个是print的时候输出,一个是在解释器上输出!


4).多行的f-string

如果对于多行的字符串的格式化,一样非常简单!

Python3.6里新特性,你竟然不知道!

当然稍微麻烦一点就是需要再每一行前面加一个f。如果只加一个f会报错!



3.为啥要引入f呢

看完上面的内容,是不是觉得不就是少敲几个字符吗!Py3.6用的着专门引用这个特性吗?Too youny,too simple !当然不是,f的特性除了简洁,漂亮之外!还有一个重要的原因,速度快!


f-string要比%和str.fomat()快很多,不信我用timeit计算一下:


1).看一下普通的%运行的时间:

))

>>

0.00024311599918291904


2).看一下format运行的时间

))

>>

0.006145652001578128

format运行的时间,要比%s多近25倍的时间!真够慢的!


3).看一下f-string的运行时间

))

>>

0.004178790000878507

f-string比format节省了近33%的时间,而简洁和优雅要甩format好几条街。



Python3.6里新特性,你竟然不知道!


发现Python真的是懒人专用的语言,能简洁的地方尽量简洁。让我又想起来Python的经典语录,不信你输入import this ,看看Python的九阴真经:

Python3.6里新特性,你竟然不知道!


从现在开始,拥抱f-string吧!


近期热门:

菜鸟学Python,上半年文章大汇总

程序员如何用Python科学炒股

周末也要编程,3道Python题,9种解法,你能想出几种

我想带你去旅行,我用Python提前做了一份端午旅游攻略

超酷,用Python还能写超级玛丽游戏

30岁后还能不能学Python,这里有一碗鸡汤

零基础学了8个月的Python,到底有啥感悟



本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享