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入门篇之面向对象
Oct 20 Python
Python ValueError: invalid literal for int() with base 10 实用解决方法
Jun 21 Python
Python安装第三方库及常见问题处理方法汇总
Sep 13 Python
Python使用win32com实现的模拟浏览器功能示例
Jul 13 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
Nov 17 Python
Python基于dom操作xml数据的方法示例
May 12 Python
Python3实现腾讯云OCR识别
Nov 27 Python
Python脚本利用adb进行手机控制的方法
Jul 08 Python
Python 中list ,set,dict的大规模查找效率对比详解
Oct 11 Python
django实现模板中的字符串文字和自动转义
Mar 31 Python
浅谈matplotlib默认字体设置探索
Feb 03 Python
Pytorch 中的optimizer使用说明
Mar 03 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程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
php文件上传的简单实例
2013/10/19 PHP
你不知道的文件上传漏洞php代码分析
2016/09/29 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
JavaScript 判断判断某个对象是Object还是一个Array
2010/01/28 Javascript
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
js打开windows上的可执行文件示例
2014/05/27 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
基于jQuery实现音乐播放试听列表
2016/04/14 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
详解auto-vue-file:一个自动创建vue组件的包
2019/04/26 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
2020/08/27 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
python实现简单socket程序在两台电脑之间传输消息的方法
2015/03/13 Python
利用nohup来开启python文件的方法
2019/01/14 Python
python实现维吉尼亚加密法
2019/03/20 Python
TensorFLow 不同大小图片的TFrecords存取实例
2020/01/20 Python
python 实用工具状态机transitions
2020/11/21 Python
纯CSS3实现扇形动画菜单(简化版)实例源码
2017/01/17 HTML / CSS
基于HTML5+CSS3实现简单的时钟效果
2017/09/11 HTML / CSS
I.T中国官网:精选时尚设计师单品网购平台
2018/03/26 全球购物
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
营销总经理岗位职责
2014/02/02 职场文书
保险公司开门红口号
2014/06/21 职场文书
离婚起诉书范本
2015/05/18 职场文书
2015年学校精神文明工作总结
2015/05/27 职场文书
MongoDB balancer的使用详解
2021/04/30 MongoDB
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers