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 22 Python
菜鸟使用python实现正则检测密码合法性
Jan 05 Python
python嵌套函数使用外部函数变量的方法(Python2和Python3)
Jan 31 Python
python连接mysql实例分享
Oct 09 Python
Python3.X 线程中信号量的使用方法示例
Jul 24 Python
django2 快速安装指南分享
Jan 05 Python
python实现字符串加密成纯数字
Mar 19 Python
pandas基于时间序列的固定时间间隔求均值的方法
Jul 04 Python
python爬虫 模拟登录人人网过程解析
Jul 31 Python
django自带调试服务器的使用详解
Aug 29 Python
python 如何区分return和yield
Sep 22 Python
python 爬取天气网卫星图片
Jun 07 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文本操作类
2006/11/25 PHP
简单的PHP留言本实例代码
2010/05/09 PHP
基于php-fpm 参数的深入理解
2013/06/03 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
2016/11/14 PHP
PHP递归的三种常用方式
2019/02/28 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
Prototype使用指南之dom.js
2007/01/10 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
2013/12/04 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
2015/01/22 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
2015/05/04 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
Angular5中调用第三方库及jQuery的添加的方法
2018/06/07 jQuery
js实现tab栏切换效果
2020/08/02 Javascript
Jquery $.map使用方法实例详解
2020/09/01 jQuery
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
Django--权限Permissions的例子
2019/08/28 Python
python实现在一个画布上画多个子图
2020/01/19 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
Python利用matplotlib绘制折线图的新手教程
2020/11/05 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
HTML5的结构和语义(3):语义性的块级元素
2008/10/17 HTML / CSS
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
十佳教师事迹材料
2014/01/11 职场文书
计算机专业毕业生自我鉴定
2014/01/16 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
高中政治教学反思
2016/02/23 职场文书
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏
Spring中的@Transactional的工作原理
2022/06/05 Java/Android