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 相关文章推荐
Linux 下 Python 实现按任意键退出的实现方法
Sep 25 Python
Windows下Python2与Python3两个版本共存的方法详解
Feb 12 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
Jan 04 Python
python奇偶行分开存储实现代码
Mar 19 Python
详解Django中间件的5种自定义方法
Jul 26 Python
Python for循环与range函数的使用详解
Mar 23 Python
python opencv 图像拼接的实现方法
Jun 27 Python
python3 enum模块的应用实例详解
Aug 12 Python
基于梯度爆炸的解决方法:clip gradient
Feb 04 Python
Python输出指定字符串的方法
Feb 06 Python
利用Python中的Xpath实现一个在线汇率转换器
Sep 09 Python
浅谈Python数学建模之固定费用问题
Jun 23 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
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
PHP中spl_autoload_register()函数用法实例详解
2016/07/18 PHP
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
IE中createElement需要注意的一个问题
2010/07/13 Javascript
JQUERY获取form表单值的代码
2010/07/17 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
jQuery弹出层始终垂直居中相对于屏幕或当前窗口
2013/04/01 Javascript
js判断undefined类型示例代码
2014/02/10 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
浅谈JavaScript的事件
2015/02/27 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
JS 实现 ajax 异步浏览器兼容问题
2017/01/21 Javascript
[49:54]Ti4 循环赛第三日 LGD vs Titan
2014/07/12 DOTA
[01:09:20]NB vs NAVI Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
python实现封装得到virustotal扫描结果
2014/10/05 Python
Python线程的两种编程方式
2015/04/14 Python
python开发之字符串string操作方法实例详解
2015/11/12 Python
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
python json.loads兼容单引号数据的方法
2018/12/19 Python
Python算法中的时间复杂度问题
2019/11/19 Python
tensorflow 大于某个值为1,小于为0的实例
2020/06/30 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
阿根廷首家户外用品制造商和经销商:Montagne
2018/02/12 全球购物
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
软件测试面试题
2015/10/21 面试题
工厂门卫岗位职责
2013/11/25 职场文书
大学生军训自我鉴定
2014/02/12 职场文书
学校班班通实施方案
2014/06/11 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
Python - 10行代码集2000张美女图
2021/05/23 Python
为什么在foreach循环中JAVA集合不能添加或删除元素
2021/06/11 Java/Android
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电