Python_50字符串格式化
字符串一经创建即在内存中存在,修改之后在内存中会重新创建
Python字符串格式化方式有两种:百分号方式(老旧 功能少) format方式(功能多 新颖 支持多)
f='i am %s %d' % ('lili',18)
print (f)
输出
————————————————————————————————————
i am lili 18
以上前两个%是占位符号 第三个 % 是表示连接符号
%[(name)]typecode
f='i am %(n1)s %(n2)d' % {'n1':'lili','n2':18}
print (f)
输出
————————————————————————————————————
i am lili 18
%[(name)][flags][width]typecode
flags : +右对齐,正数前加+号 负数前加-号; -:左对齐 正数前无符号 负数前加-号; 空格:右对齐 正数前加空格 负数前加负号; 0:右对齐 正数前无符号 负数前加负号 用0填补空白;
width:整数 代表宽度
f='i am %(n1)+10s %(n2)+d' % {'n1':'lili','n2':18}
print (f)
输出——————————————————————————————
i am lili +18
f='i am %(n1)+10s %(n2)+10f' % {'n1':'lili','n2':1.2}
print (f)
输出
————————————————————————————————————————
i am lili +1.200000
f='i am %(n1)+10s %(n2)+10.2f' % {'n1':'lili','n2':1.2}
print (f)
输出
————————————————————————————————————————
i am lili +1.20
%后边可以跟 s d f r c o x e E F g G %
常用的 %s %d %f %%
format方式
[[fill]align][sgin][#][0][width][,][.precision][type]
type的种类有:d f s e E g G %
例子:
tp='i am {}, age {} , {}'.format('seven',18,'ggggg')
print (tp)
输出————————————————————————————————————
i am seven, age 18 , ggggg
tp='i am {}, age {} , {}'.format(*['seven',18,'ggggg']) #* 的意思就是把后边的参数依次格式化到前边对应的位置去
print (tp)
输出——————————————————————————————————————————————————
i am seven, age 18 , ggggg
tp='i am {0}, age {1} , {0}'.format(*['seven',18,'ggggg']) #可以添加列表的索引
print (tp)
输出————————————————————————————————————————————
i am seven, age 18 , seven
tp='i am {name}, age {nianling} , {zhuzhi}'.format(name='zhangsna',nianling=19,zhuzhi='bejingshi')#以关键字的形式输出
print (tp)
输出——————————————————————————————————————————————————————————————————————————————
i am zhangsna, age 19 , bejingshi
tp='i am {name}, age {nianling} , {zhuzhi}'.format(**{'name':'zhangsna','nianling':19,'zhuzhi':'bejingshi'})#以字典的形式自动输出
print (tp)
输出——————————————————————————————————————————————————————————————————————————————
i am zhangsna, age 19 , bejingshi
tp='i am {0[0]}, age {0[1]} , {1[0]}'.format(['liangpi','roujiamo','caozimiao'],['hulatang','baozi','youmo'])#前边的数字 第一个表示第几个列表 第二个表示列表的第几个元素
print (tp)
输出————————————————————————————————————————————————————————————
i am liangpi, age roujiamo , hulatang
tp='i am {:s}, age {:d} ,money {:.2f}'.format('liangpi',18,15)#这个就是按顺序分别对应的表示
print (tp)
输出——————————————————————————————————————————————————————————————————————————————————
i am liangpi, age 18 ,money 15.00
tp='i am {name:s}, age {nianling:d} ,money {qian:.2f}'.format(name='liangpi',qian=18,nianling=15)#这个就好比对号入座了
print (tp)
输出————————————————————————————————————————————————————————
i am liangpi, age 15 ,money 18.00