在Python中格式化字符串的方法:%占位操作符、format函数、F-strings
1、%占位操作符
格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。
Python用一个元组将多个值传递给模板,每个值对应一个格式符。
在模板和元组之间,有一个%号分隔,它代表了格式化操作。
Python中的转换说明符:
%s 字符串 (采用str()的显示) str()得到的字符串是面向用户的,具有较好的可读性
%r 字符串 (采用repr()的显示) repr()得到的字符串是面向机器的
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数 (基底写为e)
%E 指数 (基底写为E)
%f 浮点数
%F 浮点数,与上相同
%g 指数(e)或浮点数 (根据显示长度)
%G 指数(E)或浮点数 (根据显示长度)
$$ 表示$符号
2、format函数
基本语法是通过 {} 和 : 来代替 %
使用方法有两种:b.format(a)和format(a,b)
format函数可以接受不限个参数,位置可以不按顺序,也可以向 str.format() 传入对象
format是一个方法而不是操作符,处理参数会更加明确。如果传入一个字符串,它就会被解释为一个字符串。传入只包含一个字符串的元组,那它就被解释为只包含一个字符串的元组。
format用法:
1)、通过位置
2)、通过关键字
3)、通过对象属性:在类里使用
4)、通过下标 例子:l1 = ['a', 18]
'{0[0]} is {0[1]} years old. {0[0]}'.format(l1)
5)、填充与对齐:^、<、>分别是居中、左对齐、右对齐,后面带宽度。:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充。
例子:'{:>10}'.format('哈行哈哈') ---居右对齐,总宽度为10,剩下的用空格填充
'{:A>10}'.format('哈行哈哈')----居右对齐,总宽度为10,剩下的用A填充
6)、精度与类型f(数字格式化)
7)、其他进制:b、d、o、x分别是二进制、十进制、八进制、十六进制
8)、千位分隔符:'{:,}'.format(数字) 例子: '{:,}'.format(100000) 结果为:100,000
数字格式化
{:.2f} 保留小数点后两位
{:+.2f} 带符号保留小数点后两位
{:.0f} 不带小数
{:0>2d} 数字补零 (填充左边, 宽度为2)
{:x<4d} 数字补x (填充右边, 宽度为4)
{:x<4d} 数字补x (填充右边, 宽度为4)
{:,} 以逗号分隔的数字格式(千位分隔符)
{:.2%} 百分比格式
{:.2e} 指数记法
{:10d} 右对齐 (默认, 宽度为10)
{:<10d} 左对齐 (宽度为10)
{:^10d} 中间对齐 (宽度为10)
{{}} 表示{}符号
3、F-strings
F-strings是一个以f为前缀,其中包含了表达式的字符串。表达式的结果将显示在其所在的位置上
如果变量与替换字段同名,就可以使用f字符串
1)、F-strings提供了一种明确且方便的方式将python表达式嵌入到字符串中来进行格式化
2)、F-strings中可以执行函数
3)、F-strings的运行速度比%和format格式化快
总结:
1、简单的用%,超过两个值一般都用format
2、编写新代码时,应选择使用字符串方法format,它融合并加强了%方法的优点