二. 使用format格式
格式 [[fill]align][sign][#][0][width][,][.precision][type]
fill 可选 空白处填充的字符
align 可选 对齐方式(需配合width使用)
< 内容左对齐
> 内容右对齐(默认)
= 内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字 ,内容居中
sign 可选 有无符号数字
+,正号加正,负号加负;
-,正号不变,负号加负;
空格 ,正号空格,负号加负;
“#” 可选 对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示
, 可选 为数字添加分隔符,如:1,000,000
width 可选 格式化位所占宽度
.precision 可选 小数位保留精度
type 可选 格式化类型
传入” 字符串类型 “的参数 s,格式化字符串类型数据
空白,未指定类型,则默认是None,同s
传入“ 整数类型 ”的参数
b,将10进制整数自动转换成2进制表示然后格式化
c,将10进制整数自动转换为其对应的unicode字符
d,十进制整数
o,将10进制整数自动转换成8进制表示然后格式化;
x,将10进制整数自动转换成16进制表示然后格式化(小写x)
X,将10进制整数自动转换成16进制表示然后格式化(大写X)
传入“ 浮点型或小数类型 ”的参数 e, 转换为科学计数法(小写e)表示,然后格式化;
E, 转换为科学计数法(大写E)表示,然后格式化;
f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
g, 自动在e和f中切换
G, 自动在E和F中切换
%,显示百分比(默认显示小数点后6位)
例:
1.格式化字典形式
>>> f1="I am {0},I am {1}d years old!".format("Tom",22) >>> print(f1) I am Tom,I am 22d years old! >>> f2="I am {name},I am {age}d years old!".format(**{"name":"Jeck","age":23})#此处**必不可少 >>> print(f2) I am Jeck,I am 23d years old!
2.字符串中变量的赋值
>>> mstr="I am %s,and I have %d book!"
>>> print("mstr---",mstr%("Tim",3))
mstr--- I am Tim,and I have 3 book!
>>> mstr1="I am %s,and I have %d book!"%("Tom",5)
>>> print("mstr1---",mstr1)
mstr1--- I am Tom,and I have 5 book!
>>> mstr2="I am {0},and I have{2} pen,and I love {1}!".format("Jack","北京",10)
>>> print("mstr2---",mstr2)
mstr2--- I am Jack,and I have10 pen,and I love 北京!
>>> mstr3="I am {0},and I have {1} pen,and I love {2}!".format("Jack",10,"北京")
>>> print("mstr3---",mstr3)
mstr3--- I am Jack,and I have 10 pen,and I love 北京!
3.常用的字符串操作函数
>>> mstr="xya abaac ddddeeee ff aabddv" >>> print(mstr.count("a"))#统计a出现的次数 6 >>> print("返回第一个c出现的索引位置:",mstr.find("c")) 返回第一个c出现的索引位置: 8 >>> print(mstr.replace("a","^-^"))#用^-^替换所有的a xy^-^ ^-^b^-^^-^c ddddeeee ff ^-^^-^bddv >>> print(mstr.replace("a","^-^",1))#用^-^替换第一个a xy^-^ abaac ddddeeee ff aabddv >>> print(mstr.title())#字符串的首字母大写 Xya Abaac Ddddeeee Ff Aabddv
4.字符串中插入字符、分割字符串
>>> mstr="xya abaac daaee f abv" >>> print ("^-^".join(mstr))#把^-^插入到字符串的每个字符之间 x^-^y^-^a^-^ ^-^a^-^b^-^a^-^a^-^c^-^ ^-^d^-^a^-^a^-^e^-^e^-^ ^-^f^-^ ^-^a^-^b^-^v >>> print(" ".join(mstr))#把空格插入到字符串的每个字符之间 x y a a b a a c d a a e e f a b v >>> print(mstr.split())#按切割字符串,默认在空格处切分 ['xya', 'abaac', 'daaee', 'f', 'abv'] >>> print(mstr.split("a"))#割字符串,以a为分隔符 ['xy', ' ', 'b', '', 'c d', '', 'ee f ', 'bv']
5.删除字符串中的空格
>>> mstr=" akdflkas:dsfadf " >>> print(mstr.strip())#移除字符串两边的空格 akdflkas:dsfadf >>> print(mstr.lstrip())#移除字符串左边的空格 akdflkas:dsfadf >>> print(mstr.rstrip())#移除字符串右边的空格 akdflkas:dsfadf
6.填充字符串
(1)填充常跟对齐一起使用,^<>分别是居中、左对齐、右对齐,后面带宽度
(2):号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
>>> "{:20}".format("asdf")#默认在规定的20个字符长度中左对齐 'asdf ' >>> "{:^20}".format("adff")#^表示在规定20个字符的长度中居中对齐 ' adff ' >>> "{:<20}".format("asdf")#<表示在规定的20个字符的长度中左对齐 'asdf ' >>> "{:>20}".format("asdf")#>表示在规定的20个字符的长度中右对齐 ' asdf' >>> "python{:*<20}".format("666")#指定填充字符串'666'在'python'后,并且左对齐,别外不够20个字符时用*号补齐 'python666*****************' >>> "python{:*^20}".format("666")#指定填充字符串'666'在'python'后,并且在20个字符的长度中居中对齐,不够的用*补齐 'python********666*********' >>> "python{:*>20}".format("666")#指定填充字符串'666'在'python'后,并且在20个字符的长度中右对齐,不够的用*补齐
'python*****************666'
7.加千位分隔符
>>> "{:,}".format(1234567890)#添加千位分割符 '1,234,567,890'
8.格式化小数点位数
#保留3位小数点的方法
>>> x=1122.12221221 >>> "{:0.3f}".format(x) '1122.122' >>> "{0:0.3f}".format(x) '1122.122' >>> "{0:.3f}".format(x) '1122.122' >>> "{:.3f}".format(x) '1122.122'