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实现将HTML转换成doc格式文件的方法示例
Nov 20 Python
flask中使用蓝图将路由分开写在不同文件实例解析
Jan 19 Python
Tensorflow使用tfrecord输入数据格式
Jun 19 Python
Python解决两个整数相除只得到整数部分的实例
Nov 10 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
Django多进程滚动日志问题解决方案
Dec 17 Python
python字符串下标与切片及使用方法
Feb 13 Python
Python 实现网课实时监控自动签到、打卡功能
Mar 12 Python
Python3爬虫里关于代理的设置总结
Jul 30 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
Jan 21 Python
Python读写Excel表格的方法
Mar 02 Python
Python爬取英雄联盟MSI直播间弹幕并生成词云图
Jun 01 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
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
php实现字符串首字母转换成大写的方法
2015/03/17 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
不要使用jQuery触发原生事件的方法
2014/03/03 Javascript
分享使用AngularJS创建应用的5个框架
2015/12/05 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
2017/04/28 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
2017/06/03 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
JavaScript:ES2019 的新特性(译)
2019/08/08 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
JavaScript ES 模块的使用
2020/11/12 Javascript
[01:08:56]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第一场 2月7日
2021/03/11 DOTA
Python基于动态规划算法计算单词距离
2015/07/25 Python
在Python中移动目录结构的方法
2016/01/31 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
python实现共轭梯度法
2019/07/03 Python
python 进程的几种创建方式详解
2019/08/29 Python
院药学专业个人求职信
2013/09/21 职场文书
智能电子应届生求职信
2013/11/10 职场文书
小学新学期寄语
2014/04/02 职场文书
党风廉政建设责任书
2014/04/14 职场文书
2014年党支部承诺书
2014/05/30 职场文书
酒店优秀员工推荐信
2015/03/24 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
植树节新闻稿
2015/07/17 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书
Django drf请求模块源码解析
2021/06/08 Python