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实现查询IP地址所在地
Mar 29 Python
Python selenium 三种等待方式解读
Sep 15 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
Jun 05 Python
Python常见内置高效率函数用法示例
Jul 31 Python
Pycharm设置utf-8自动显示方法
Jan 17 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
May 09 Python
基于Tensorflow:CPU性能分析
Feb 10 Python
python cv2.resize函数high和width注意事项说明
Jul 05 Python
Opencv常见图像格式Data Type及代码实例
Nov 02 Python
用Python远程登陆服务器的步骤
Apr 16 Python
python缺失值的解决方法总结
Jun 09 Python
python编程项目中线上问题排查与解决
Nov 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
php邮件发送,php发送邮件的类
2011/03/24 PHP
解析thinkphp基本配置 convention.php
2013/06/18 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
PHP自定义函数获取汉字首字母的方法
2016/12/01 PHP
js中复制行和删除行的操作实例
2013/06/25 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
jquery表单验证需要做些什么
2015/11/17 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
2018/07/20 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
vue vant Area组件使用详解
2019/12/09 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
vuex的数据渲染与修改浅析
2020/11/26 Vue.js
python实用代码片段收集贴
2015/06/03 Python
利用python程序帮大家清理windows垃圾
2017/01/15 Python
使用Python对SQLite数据库操作
2017/04/06 Python
浅谈Python Opencv中gamma变换的使用详解
2018/04/02 Python
将tensorflow的ckpt模型存储为npy的实例
2018/07/09 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
2020/01/25 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
使用css3制作动感导航条示例
2014/01/26 HTML / CSS
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
建筑公司员工自我鉴定
2014/04/08 职场文书
保护环境倡议书300字
2014/05/19 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书
煤矿安全保证书
2015/02/27 职场文书
信用卡工资证明范本
2015/06/19 职场文书
运动会1000米加油稿
2015/07/21 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
python实现网络五子棋
2021/04/11 Python
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript