str.format(*args,**kwargs),用来格式化字符串。和%占位符有类似的功能,但在操作上就大不同了,这里介绍format()函数来格式化字符串的个人学习经验。
1.书写格式和含义:
1、基本格式:“xxx{}xxx”.format(参数)1)实际是一个字符串调用format方法的格式。2)字符串中包含字符串字面值,以及花括号{}括起来的替换域,3)字符串可以有多个{}的替换域,函数可以有多个参数。
2、含义:1)每个替换域对应位置参数。2)或者每个替换域可以包含一个位置参数的数字索引3)或者每个替换域可以包含一个关键字参数的名称。4)返回的字符串中每个替换域都会被替换为对应参数的字符串值。
2.花括号{}替换参数值的方式:
1、按参数的默认位置:“辘腋粪梯{}{}{}”.format(参数1,参数2,参数3,参数4)1)花括号{}和参数位置顺序对应。(即都是0,1,2...屡郭瓜开排位)2)参数的个数要大于或等于{}的个数,否则会报错误:“IndexError:tupleindexoutofrange”索引错误:元组索引超出范围。2)如果字符串内要写入以花括号为标志的字符,使用双花括号{{xxxx}}。
2、按参数的索引:“{0}{1}{0}{0}”.format(参数1,参数2)这种写法灵活了许多;1)索引必须是存在的,可以对一个参数替换多次。2)有些参数可以不用;3)不和其他方法混用,否则会报超出索引范围的错误。4)如何字符串内要写入以花括号为标志的字符,使用双花括号{{xxxx}}。
3、按参数关键字。(关键亨蚂擤缚字参数是函数被调用时传入实参的一种形式,可以看下面的链接);“{参数1}{参数2}{参数1}撑俯擂摔{参数2}”.format(参数1=xxx,参数2=xxx)1)花括号{}内放的是键,格式化后返回的是值。2)一个关键字可以被花括号{}多次使用。3)不能和其他方法混用。4)如果字符串内要写入以花括号为标志的字符,使用双花括号{{xxxx}}。
4、format的耩撞苏粪参数有列表数据类型时,{}的替换方式。“{0[0]},{0[1]}{1[1]}{2}”.format([元素1,元素2,元素3],[元素锾攒揉敫a,元素b],23,24)1)这实际是前面提到的按索引,或关键字取参数值。只不过有列表类型;2)按索引,要先写参数的索引,然后再写列表的索引。3)如果提供的是关键字,先写关键字,再写列表索引。
5、format的参数有字典数据类型时,{}的替换方式。“{0[k1]},{0[k2]}{1}{2}”.format({k1:v1,k2:v2},23,24)1)按索引取参数值。先写参数的索引,再写字典的键。2)如果参数提供的是关键字,先写关键字,再写字典的键。
3.对替换的参数常用渲染:
1、format中给出了很多格式限定符号进行渲染。书写格式:“{:}”.format(参数)冒号(:),它的左边是被替换的参数,右边是怎么格式化(格式限定符)。
2、限定字符宽度;在冒号右边写上一个正整数,这个就被认定是规定左边字符的宽度。
3、对齐限定符:1)是在宽度的范围内,左对齐<,右对齐>,居中^;2)宽度跟在对齐符后面,(默认情况下貌似左边默认左对齐,右边默认右对齐)
4、指定字符对空格填充:1)填充符跟着冒号后面,只能写一个,或不写。(键盘能敲出来的任何字符)2)默认不指定,为空字符。
5、十进制浮点数的精度格式化:1)用f标记来限定它的精度。2)写法是冒号右边:vb.af,v代表填充字符,b是整个字符的宽度,.a是限定的小数位数。先算精度再算宽度。3)如果小数位数位数大于限定数,是六凑五丢的方式。
4.总结:
1、和%占位符格式化相比,format()更容易懂许多。如果一句简短字符串,还是%方便,如果是长篇的,format()比%强。