python3格式化字符串 f-string的高级用法(推荐)


Posted in Python onMarch 04, 2020

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即可。看看这是多么容易可读:

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

总结

到此这篇关于python3格式化字符串 f-string的高级用法(推荐)的文章就介绍到这了,更多相关python f-string 格式化字符串内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python使用Pycrypto库进行RSA加密的方法详解
Jun 06 Python
如何在Python函数执行前后增加额外的行为
Oct 20 Python
Python简单读取json文件功能示例
Nov 30 Python
Python使用wget实现下载网络文件功能示例
May 31 Python
python3实现爬取淘宝美食代码分享
Sep 23 Python
Python寻找两个有序数组的中位数实例详解
Dec 05 Python
详解python项目实战:模拟登陆CSDN
Apr 04 Python
python线程的几种创建方式详解
Aug 29 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
Sep 25 Python
如何使用python记录室友的抖音在线时间
Jun 29 Python
Python如何将模块打包并发布
Aug 30 Python
python如何实时获取tcpdump输出
Sep 16 Python
利用Python脚本批量生成SQL语句
Mar 04 #Python
一文了解python 3 字符串格式化 F-string 用法
Mar 04 #Python
Python正则表达式学习小例子
Mar 03 #Python
python正则表达式实例代码
Mar 03 #Python
python 实现在无序数组中找到中位数方法
Mar 03 #Python
python的列表List求均值和中位数实例
Mar 03 #Python
基于Python数据分析之pandas统计分析
Mar 03 #Python
You might like
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
那些年一起学习的PHP(三)
2012/03/22 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
一个JQuery写的点击上下滚动的小例子
2011/08/27 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
2014/10/14 Javascript
跟我学习JScript的Bug与内存管理
2015/11/18 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
解析如何利用iframe标签以及js制作时钟
2016/12/08 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
vue+element-ui+ajax实现一个表格的实例
2018/03/09 Javascript
javascript中一些奇葩的日期换算方法总结
2018/11/14 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
Web服务器框架 Tornado简介
2014/07/16 Python
对于Python编程中一些重用与缩减的建议
2015/04/14 Python
使用Python的内建模块collections的教程
2015/04/28 Python
基于Python实现一个简单的银行转账操作
2016/03/06 Python
利用Python查看目录中的文件示例详解
2017/08/28 Python
Python CSV文件模块的使用案例分析
2019/12/21 Python
python中的subprocess.Popen()使用详解
2019/12/25 Python
Python类如何定义私有变量
2020/02/03 Python
python 模拟登录B站的示例代码
2020/12/15 Python
介绍一下write命令
2014/08/10 面试题
俄语翻译实习生的自我评价分享
2013/11/06 职场文书
信息专业个人的自我评价
2013/12/27 职场文书
励志演讲稿范文
2014/04/29 职场文书
商务英语专业大学生职业生涯规划书
2014/09/14 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
大二学生自我检讨书
2014/10/23 职场文书
皇城相府导游词
2015/02/06 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书