时间:2021-05-22
前序
There should be one - and preferably only one - obvious way to do it.
———— the Zen of Python
意译:Python提倡用一种,而且最好是只有一种方法来完成一件事
虽然 Python 有以上的提倡,但却在字符串格式化方面,没有做到这一点。
字符串格式化
敲黑板,划重点:在 Python 中有至少三种常见方式实现字符串格式化:
1、printf 风格的字符串格式化(%-formatting 格式)
Python2.6 之前只有这一种方式,使用与 C 中 printf 函数一样的语法。
基础语法:format % value(其中 format 为一个字符串),在 format 中的 % 转换标记符将被替换为零个或者多个 value 条目
基础用法
printf 语法
针对这种格式化操作,重要知识点如下:
1、针对这些转换标记字符,必须按照以下顺序:
% --> (name) --> '#'、'-'、'0'、'+'、' ' --> m.n | m --> d、s、r、f
2、常用转换类型:
3、常用的转换标记字符:
2、字符串的方式(str.format()格式)
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能,比如:支持位置映射、关键字映射、对象属性映射、下标映射等多种方式
基本语法是通过 {} 和 : 来代替以前的 %,例如:'%03.2f'被改写成 '{:03.2f}'。
两个格式化方法:
str.format(*args, **kwargs)
字符串的格式化操作。
str 包含字符串字面值 AND {} 括起来的替换域。
每个替换域:位置参数的索引 OR 关键字参数的名称
str.format_map(mapping)
类似于 str.foramt(**mapping)
不同之处:mapping 会被直接使用而不是复制到一个dict。
PS:Python 存在内置函数 format(value, format_spec):会转换成 type(value).format(value, format_spec)
基础用法
1、按位置访问参数
2、按名称访问参数
3、访问参数的属性
4、访问参数的项
5、替代 %s 和 %r (!s、!r)
6、对齐文本以及制定宽度(:<、:^、:>)
7、替代 %+f、%-f 和 %f 以及指定正负号(:+、:-、:)
8、替换 %x 和 %o 以及转换基于不同进位制的值(:x、:d、:o、:b)
9、使用逗号作为千位分隔符(:,)
10、表示为百分数(:.2%)
11、使用特定类型的专属格式化
12、嵌套参数以及更复杂的示例
略
3、格式化字符串字面值(f-string 格式)
是带有 'f' 或 'F' 前缀的字符串字面值。
花括号以外的部分按其字面值处理,除了双重花括号 '{{' 或 '}}' 会被替换为相应的单个花括号。
语法如下:
单个花括号 '{',标示一个替换字段(以 Python 表达式打头)
+ 可能有一个以叹号 '!' 标示的转换字符
+ 可能有一个以冒号 ':' 标示的格式说明符
+ 以一个右花括号 '}' 作为结束
注意:格式化字符串字面值中的表达式:
如果指定了转换符,则表达式求值的结果会先转换再格式化。之后使用 Python 内置函数 format() 进行格式化。
基本用法
PS:与 str.format() 有一点不同:在 str.format() 中,非数字索引将自动转化为字符串,而f-strings则不会。
总结
从以下三个方面进行对比:
速度上:f-string > %-formatting > str.format()
功能上:f-string > str.format() > %-formatting
可读性: f-string > str.format() > %-formatting
对于速度验证,笔者就不在此进行验证了。
推荐使用场景:
%-formatting:Python2 中,由于其性能优势,在涉及输出的一些操作时,优先推荐使用
str.format():Python2 中,由于其功能优势,在涉及字符串拼接的一些操作时,优先推荐使用
f-string: Python3 中,强烈推荐使用
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例总结了python格式化字符串的方法,分享给大家供大家参考。具体分析如下:将python字符串格式化方法以例子的形式表述如下:*定义宽度Python代码
Python2.6开始,新增了一种格式化字符串的函数str.format(),它增强了字符串格式化的功能。基本语法是通过{}和:来代替以前的%。format函数
在许多编程语言中都包含有格式化字符串的功能,比如C和Fortran语言中的格式化输入输出。Python中内置有对字符串进行格式化的操作%。模板格式化字符串时,P
python中format函数用于字符串的格式化自python2.6开始,新增了一种格式化字符串的函数str.format(),此函数可以快速处理各种字符串。语
两种格式化字符串方法众所周知,C++的std::string功能残缺,各种功能都没有,比如格式化字符串功能。在python3中,支持两种格式化字符串的方法,一种