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利用装饰器进行运算的实例分析
Aug 04 Python
Python数据类型详解(二)列表
May 08 Python
深入解析Python中的线程同步方法
Jun 14 Python
Python 中pandas.read_excel详细介绍
Jun 23 Python
Python内置函数delattr的具体用法
Nov 23 Python
python获取代理IP的实例分享
May 07 Python
python简单贪吃蛇开发
Jan 28 Python
pip指定python位置安装软件包的方法
Jul 12 Python
Python 写入训练日志文件并控制台输出解析
Aug 13 Python
浅谈Django+Gunicorn+Nginx部署之路
Sep 11 Python
python开发入门——set的使用
Sep 03 Python
python playwright 自动等待和断言详解
Nov 27 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
支持oicq头像的留言簿(一)
2006/10/09 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
Laravel框架源码解析之模型Model原理与用法解析
2020/05/14 PHP
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
判断用户是否在线的代码
2011/03/05 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
js字符串转成JSON
2013/11/07 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
2015/08/27 Javascript
js文字横向滚动特效
2015/11/11 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
2016/05/18 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
jQuery实现判断上传图片类型和大小的方法示例
2018/04/11 jQuery
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
element中table高度自适应的实现
2020/10/21 Javascript
Python中函数参数设置及使用的学习笔记
2016/05/03 Python
Sanic框架蓝图用法实例分析
2018/07/17 Python
Django+Xadmin构建项目的方法步骤
2019/03/06 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
Python any()函数的使用方法
2019/10/28 Python
北美三大旅游网站之一:Travelocity加拿大
2016/08/20 全球购物
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
Oracle快照(snapshot)
2015/03/13 面试题
咖啡店自主创业商业计划书
2014/01/22 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
环保建议书400字
2014/05/14 职场文书
品酒会策划方案
2014/05/26 职场文书
重大事项社会稳定风险评估方案
2014/06/15 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
2021/04/12 Python
CSS的class与id常用的命名规则
2021/05/18 HTML / CSS