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读写ini文件示例(python读写文件)
Mar 25 Python
分数霸榜! python助你微信跳一跳拿高分
Jan 08 Python
Python pandas常用函数详解
Feb 07 Python
对python实现二维函数高次拟合的示例详解
Dec 29 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
Feb 12 Python
Python实现定时自动关闭的tkinter窗口方法
Feb 16 Python
Python 获取ftp服务器文件时间的方法
Jul 02 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
May 24 Python
Python虚拟环境venv用法详解
May 25 Python
Django怎么在admin后台注册数据库表
Nov 14 Python
PyQt实现计数器的方法示例
Jan 18 Python
Python requests用法和django后台处理详解
Mar 19 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正则提取图片地址
2014/03/27 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
javascript表单验证 - Parsley.js使用和配置
2013/01/25 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
使用jquery+CSS实现控制打印样式
2014/12/31 Javascript
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
详解JavaScript中Hash Map映射结构的实现
2016/05/21 Javascript
jQuery制作全屏宽度固定高度轮播图(实例讲解)
2017/07/08 jQuery
React中的render何时执行过程
2018/04/13 Javascript
一文读懂ES7中的javascript修饰器
2019/05/06 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
基于axios 的responseType类型的设置方法
2019/10/29 Javascript
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
python插入数据到列表的方法
2015/04/30 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
virtualenv 指定 python 解释器的版本方法
2018/10/25 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
pytz格式化北京时间多出6分钟问题的解决方法
2019/06/21 Python
css3 线性渐变和径向渐变示例附图
2014/04/08 HTML / CSS
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
美国复古街头服饰精品店:Need Supply Co.
2017/02/22 全球购物
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
"火柴棍式"程序员面试题
2014/03/16 面试题
shell程序中如何注释
2012/02/17 面试题
致1500米运动员广播稿
2014/02/07 职场文书
授权委托书怎么写
2014/09/25 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
人口与计划生育责任书
2015/05/09 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书
如何用JavaScript检测当前浏览器是无头浏览器
2021/04/27 Javascript
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers