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实现中文分词FMM算法实例
Jul 10 Python
Python对列表中的各项进行关联详解
Aug 15 Python
pip matplotlib报错equired packages can not be built解决
Jan 06 Python
浅谈python中对于json写入txt文件的编码问题
Jun 07 Python
Python转换时间的图文方法
Jul 01 Python
libreoffice python 操作word及excel文档的方法
Jul 04 Python
Python 使用type来定义类的实现
Nov 19 Python
Python递归调用实现数字累加的代码
Feb 25 Python
Python中的整除和取模实例
Jun 03 Python
单身狗福利?Python爬取某婚恋网征婚数据
Jun 03 Python
Anaconda安装pytorch及配置PyCharm 2021环境
Jun 04 Python
详解Golang如何实现支持随机删除元素的堆
Sep 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
php,不用COM,生成excel文件
2006/10/09 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
2017/01/11 PHP
highchart数据源纵轴json内的值必须是int(详解)
2017/02/20 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
清除网页历史记录,屏蔽后退按钮!
2008/12/22 Javascript
ExtJs事件机制基本代码模型和流程解析
2010/10/24 Javascript
TypeError document.getElementById(...) is null错误原因
2015/05/18 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
2017/07/24 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
解决element UI 自定义传参的问题
2018/08/22 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
在vue中实现给每个页面顶部设置title
2020/07/29 Javascript
vue用elementui写form表单时,在label里添加空格操作
2020/08/13 Javascript
[01:00:25]NB vs Secret 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
2017/12/19 Python
Python类的继承用法示例
2019/01/31 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
HTML5头部标签的一些常用信息小结
2016/10/23 HTML / CSS
Charlotte Tilbury英国官网:英国彩妆品牌
2017/05/26 全球购物
周年庆典邀请函范文
2014/01/24 职场文书
纪律教育学习心得体会
2014/09/02 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
护士长2014年终工作总结
2014/11/11 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
电力安全教育培训心得体会
2016/01/11 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书