格式化字符串:
格式化是对字符串进行格式表达的方式
格式化字符串是指将指定的字符串转换为想要的格式。python中
有3种格式化字符串的方式,使用format()方法格式化、使用%格式化和使用f—string格式化。
format()格式化方法:
字符串格式化使用.format()方法,用法如下:
<模板字符串>.format(<逗号分割的参数>)
str.format(values)
以上格式中,str表示需要被格式化的字符串,字符串中包含单个或多个为真实数据占位的符号{}
values表示单个或多个待替换的真实数据,多个数据之间用逗号分割。
示例如下:
print("{}:计算机{}的CPU占用率为{}%".format("2018-10-10","C",10))
三个槽在不指定的情况下位置默认为0,1,2
format函数的三个参数默认三个参数的顺序为0,1,2
其中的槽,在字符串被格式化的时候,Python解释器默认会按从左到右的顺序将{ }逐个替换为真实的数据。即format里面的由逗号分割的参数会逐一填到前面的槽里
其中,槽的序数为从左到右从0开始,format参数从左到右序数为从0开始。
运行所示:
我们也可以在槽中指定需要添加的参数的位置,format()参数按照对应的顺序填到模板字符串的槽中。即2018-10-10在format参数里的位置为0,填到槽数为0的地方。
代码如下:
print("{1}:计算机{2}的CPU占用率为{0}%".format("2018-10-10","C",10))
运行界面如下:
字符串的{ }槽里可以指定名称·,字符串在被格式化时python解释器会按真实数据绑定的名称替换{}中的变量。所指定的名称与format里面的参数的名称一致。
代码如下:
a="2018-10-10" b="C" c=10 str=f"{a}:计算机{b}的CPU占用率为{c}%" print(str.format(a=a,b=b,c=c))
运行界面如下:
槽内部对格式化的配置方式
{<参数序号>:<格式控制标记>}
: | 引导符号 |
<填充> | 用于填充的单个字符 |
<对齐> |
<为左对齐 >为右对齐 ^为居中对齐 |
<宽度> | 槽设定的输出宽度 |
<,精度> | 浮点数小数 精度或字符串 最大输出长度 |
<,> | 数字的千位分隔符 |
<类型> | 整数类型 b,c,d,o,x,X 浮点数类型 e,E,f,% |
其中前三个<填充>、<对齐>、<宽度>为一组概念,这组概念的基本模式是:
首先给出一个输出宽度
第二要决定即将输出的这个参数在这个宽度中的对齐方式。
第三确定对齐之后,如果还有剩余的空间,确定用什么字符进行填充。
当没有设置这些的时候,默认的填充字符为空格,默认对齐方式为左对齐。
在槽里面进行设置时,他的顺序为<填充>,下来设置<对齐方式>、最后<字符宽度>。
示例代码如下:
1.print("{:=^20}".format("python"))#填充字符为=,对齐方式为居中,字符长度为20.
运行界面如下:
2.print("{:*>20}".format("bbt"))#填充字符为*,对齐方式为右对齐,字符长度为20.
运行界面如下:
3.print("{:10}".format("rgf"))#默认填充字符为空格,默认对其方式为左对齐,字符长度为10。
运行界面如下:
<,>数字的千位分隔符:
输出字符串但是当作数字给人阅读的时候才会使用
示例如下:
print("{:,.2f}".format(12345.6789))#.2f为保留小数点两位,其中,为千位分隔符
运行界面:
<类型>整数类型 b,c,d,o,x,X 浮点数类型 e,E,f,%:
整数类型代码示例如下:
print("{:b}".format(12345))#:b为二进制格式 print("{:c}".format(12345))#:c字符形式,即Unicode编码格式 print("{:d}".format(12345))#:d 十进制格式 print("{:o}".format(12345))#:o八进制格式 print("{:x}".format(12345))#:x十六进制格式 print("{:X}".format(12345))#:X大写的十六进制形式
运行界面如下:
浮点数类型代码示例如下:
print("{:e}".format(12345))#:e为科学计数法e print("{:E}".format(12345))#:E为科学计数法E print("{:f}".format(12345))#:f通常的非科学计数法形式表示浮点数 print("{:%}".format(12345))#:%以%形式表示浮点数
运行界面如下:
%格式化方法:
使用格式如下:str % values
以上格式中,str表示需要被格式化的字符串,该字符串中包含单个或多个为真实数据占位的格式符。
values表示单个或多个待替换的真实数据,多个数据之间用逗号分割。
常见的格式符如表所示:
%c | 将对应的数据格式化为字符 |
%s | 将对应的数据格式化为字符串 |
%d | 将对应的数据格式化为整数 |
%u | 将对应的数据格式化为无符号整型 |
%o | 将对应的数据格式化为无符号八进制数 |
%x | 将对应的数据格式化为无符号十六进制数 |
%f | 将对应的数据格式化为浮点数,可指定小数点后的精度(默认保留6位小数) |
示例如下所示:
name='约翰。沃尔' age=27 address='华盛顿奇才队' print('----------------') print("姓名:%s"% name) print("年龄:%d"% age) print("地址:%s"% address) print('----------------')
运行界面如下:
使用多个格式符进行格式化时替换的数据以元组形式存储
f-string格式化字符串:
f-string是一种更为简洁的格式化字符串的方式,它在形式上以f或F引领字符串,在字符串中使用"{变量名}"标识被替换的真实数据和其所在位置。f-string格式如下:
f('{变量名}')或F('{变量名}')
代码如下:
name='约翰。沃尔' age=27 address='华盛顿奇才队' print(f'姓名:{name},\n年龄:{age},\n地址:{address}')
运行界面如下: