format常见⽤法
format常见⽤法包括格式化填充字符,⽂本的填充与对齐,格式转换等.
format填充字符串
通过位置进⾏填充
print("""
注意你的{},他会变成你的{};
注意你的{},他会变成你的{};
注意你的{},他会变成你的{};
注意你的{},他会变成你的{};
注意你的{},他会变成你的{}
""".format("思想","⾔语","⾔语","⾏动","⾏动","习惯","习惯","性格","性格","命运"))
⽤来填充的字符和需要填充的位置⼀⼀对应,如果填充的内容⽐较多,⽽且有重复,可以把填充的内容赋值给变量,重复利⽤
赋值变量
a = "思想"
b = "⾔语"
c = "⾏动"
d = "习惯"
e = "性格"
f = "命运"
变量与需要填充的位置⼀⼀对应进⾏填充,不需要重复写⽤来填充的字符了,和上边填充⽅法相同的⼀点是位置与变量的数量是相同的
print("""
注意你的{},他会变成你的{};
注意你的{},他会变成你的{};
注意你的{},他会变成你的{};
注意你的{},他会变成你的{};
注意你的{},他会变成你的{}
""".format(a,b,b,c,c,d,d,e,e,f))
输出结果:
注意你的思想,他会变成你的⾔语;
注意你的⾔语,他会变成你的⾏动;
注意你的⾏动,他会变成你的习惯;
注意你的习惯,他会变成你的性格;
注意你的性格,他会变成你的命运
还有另⼀种⽅法来确定变量与位置的关系
print("""
注意你的{0},他会变成你的{1};
注意你的{1},他会变成你的{2};
注意你的{2},他会变成你的{3};
注意你的{3},他会变成你的{4};
注意你的{4},他会变成你的{5}
""".format(a,b,c,d,e,f))
⽤来进⾏的填充去重,把位置信息填⼊花括号中,此时花括号中的位置信息指向的是format后边圆括号中的变量信息,与前两种填充⽅法不同的⼀点是位置数量与⽤来填充的变量数量不⼀致了,因为有重复利⽤的变量.
虽然有不同,但是以上三种⽅法都是通过位置信息来进⾏填充的,只是有的是在空缺的地⽅进⾏位置限制,有的是在format后边进⾏位置限制,只要对位置信息⽐较清楚,都可以进⾏正确的填充.
通过关键字参数进⾏填充
注意你的{A},他会变成你的{B};
注意你的{B},他会变成你的{C};
注意你的{C},他会变成你的{D};
注意你的{D},他会变成你的{E};
注意你的{E},他会变成你的{F}
""".format(A=a,B=b,C=c,D=d,E=e,F=f))
返回结果:
注意你的思想,他会变成你的⾔语;
注意你的⾔语,他会变成你的⾏动;
注意你的⾏动,他会变成你的习惯;
注意你的习惯,他会变成你的性格;
注意你的性格,他会变成你的命运
通过关键字参数进⾏控制,和位置就没有多⼤关系了,在所有空缺都⽤关键字参数进⾏控制填充的时候,format后边先写哪⼀个位置的对应关系都没有关系,这样也可以:
print("""
注意你的{A},他会变成你的{B};
注意你的{B},他会变成你的{C};
注意你的{C},他会变成你的{D};
注意你的{D},他会变成你的{E};
注意你的{E},他会变成你的{F}
""".format(F=f,A=a,D=d,B=b,C=c))
打乱关键字参数顺序也是可以返回正确结果的.
还可以通过列表进⾏填充
list1 = ["思想","⾔语","⾏动","习惯","性格","命运"]
print("""
注意你的{0[0]},他会变成你的{0[1]};
注意你的{0[1]},他会变成你的{0[2]};
注意你的{0[2]},他会变成你的{0[3]};
注意你的{0[3]},他会变成你的{0[4]};
注意你的{0[4]},他会变成你的{0[5]}.
""".format(list1))
返回结果:
注意你的思想,他会变成你的⾔语;
注意你的⾔语,他会变成你的⾏动;
注意你的⾏动,他会变成你的习惯;
注意你的习惯,他会变成你的性格;
注意你的性格,他会变成你的命运.
需要注意的是{0[0]},{0[1]}…{0[5]}这些花括号⾥前边的0不能直接写成list1,如果写成list1会报错,因为写了list1就等于是直接匹配到需要填充的字符了,根本⽤不到后边的format⽅法.所以,可以写0,也可以写其他随便的变量名字(⽐如说这个被随便取的变量名字是a),然后在format后边的括号了赋值刚刚随便写的变量名字给list1(.format(a=list1))就可以了.格式化命令format参数
通过字典进⾏填充
#通过字典填充
dic1 = {"a":"思想","b":"⾔语","c":"⾏动","d":"习惯","e":"性格","f":"命运"}
print("""
注意你的{names[a]},他会变成你的{names[b]};
注意你的{names[b]},他会变成你的{names[c]};
注意你的{names[c]},他会变成你的{names[d]};
注意你的{names[d]},他会变成你的{names[e]};
注意你的{names[e]},他会变成你的{names[f]}.
""".format(names=dic1))
注意你的思想,他会变成你的⾔语;
注意你的⾔语,他会变成你的⾏动;
注意你的⾏动,他会变成你的习惯;
注意你的习惯,他会变成你的性格;
注意你的性格,他会变成你的命运.
需要注意的是⽤访问字典的键(key)的时候,是不需要加引号的.
实际上,在字符串填充涉及到的知识点,不管是所谓的位置填充还是关键字填充,或者是列表填充或者字典填充,最重要的就是要清楚要填补的位置与要填充的字符的关系,对应的关系是不是对,当然除了涉及到位置和关键字参数,还涉及到列表的切⽚以及字典的访问,都是⽐较基础的内容
⽂本的填充与对齐
填充和对齐经常⼀起使⽤,这⾥的填充不是指前边的字符串填充,⽽是在对齐过程中,字符个数不够时⽤什么来填充.
^ < >这三个符号分别表⽰居中、左对齐、右对齐,符号后边跟着数字指字符的整体长度
:号后⾯带填充的字符,只能是⼀个字符,不指定的话默认是⽤空格填充
print('{:^14}'.format('江南燕'))  #居中,整个字符串的长度为14,不指定填充字符,⽤空格填充
print('{:>14}'.format('江南燕'))  #右对齐,⽤空格填充
print('{:<14}'.format('江南燕'))  #左对齐,⽤空格填充
print('{:*<14}'.format('江南燕')) #左对齐,⽤*填充
print('{:&>14}'.format('江南燕')) #右对齐,⽤&填充
返回结果:
江南燕
江南燕
江南燕
江南燕***********
&&&&&&&&&&&江南燕
格式转换
关于格式转换,⽹上有很多⼤神总结了特别全⾯的知识点,这⾥不全部罗列了,只拿最常⽤的做个例⼦展⽰⼀下怎么⽤吧.
'{:.2f}'.format(3.1415926) #保留两位⼩数
返回结果:'3.14'
如果想保留⼏位⼩数,就把f前边的2换成⼏就可以了
'{:.0f}'.format(3.1415926) #不保留⼩数位数
返回结果:```3``
'{:+.2f}'.format(3.1415926) #保留带符号的两位⼩数
返回结果:'+3.14'
'{:+.2f}'.format(-3.1415926) #不管保留的符号是正号还是负号,都是在冒号和点之间加"+"
返回结果:'-3.14'
'{:.2%}'.format(0.25) #百分位数保留⼩数位数,想保留⼏位,百分号前边就写数字⼏
返回结果:'25.00%'
'{:>10d}'.format(100) #右对齐,10表⽰带宽,在这⾥也是字符个数
返回结果:' 100'
'{:0>10d}'.format(100) #⽤0填充补齐的位置 (右对齐)
返回结果:'0000000100'
对齐和填充的规则和前边⽂本与填充的规则和效果差不多,可以⾃⾏尝试.⾦额的千位分隔符
'{:,}'.format(1234567890) #冒号后边加逗号,形成千位分隔符
返回结果:'1,234,567,890'