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正则表达式re模块详解
Jun 25 Python
Python复制目录结构脚本代码分享
Mar 06 Python
Django 添加静态文件的两种实现方法(必看篇)
Jul 14 Python
Python科学计算包numpy用法实例详解
Feb 08 Python
解决python 输出是省略号的问题
Apr 19 Python
Python简单读写Xls格式文档的方法示例
Aug 17 Python
Python3中lambda表达式与函数式编程讲解
Jan 14 Python
django自带serializers序列化返回指定字段的方法
Aug 21 Python
Python定时任务APScheduler安装及使用解析
Aug 07 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
django中ImageField的使用详解
Dec 21 Python
TensorFlow的自动求导原理分析
May 26 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中的ini配置原理详解
2014/10/14 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
64位windows系统下安装Memcache缓存
2015/12/06 PHP
JavaScript Event学习第九章 鼠标事件
2010/02/08 Javascript
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
Backbone.js框架中简单的View视图编写学习笔记
2016/02/14 Javascript
第四章之BootStrap表单与图片
2016/04/25 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
JavaScript门面模式详解
2017/10/19 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
react 中父组件与子组件双向绑定问题
2019/05/20 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
vue自定义switch开关组件,实现样式可自行更改
2019/11/01 Javascript
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
Python中的枚举类型示例介绍
2019/01/09 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
python-序列解包(对可迭代元素的快速取值方法)
2019/08/24 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
HTML5几个设计和修改的页面范例分享
2015/09/29 HTML / CSS
HTML5学习心得总结(推荐)
2016/07/08 HTML / CSS
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
欧缇丽加拿大官方网站:Caudalie加拿大
2019/07/18 全球购物
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
高二生物教学反思
2014/01/27 职场文书
保安部任务及岗位职责
2014/02/25 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
信访工作汇报材料
2014/10/27 职场文书