字符串的拼接有两种方式:
(1)万恶的连接符
万恶的连接符(+): 每次连接都会开辟一个新的内存空间(原内存空间程序不会删除,解释器有回收机制,发现没有人调用此内存空间即会回收) eg:a=b+c+d 会开辟3个内存空间
(2)字符串格式化
格式符
格式符为真实值预留位置,并控制显示的格式。格式符可以包含有一个类型码,用以控制显示的类型
%[(name)][flags][width].[precision]typecode
(name)为命名
flags可以有+,-,' '或0。+表示右对齐。-表示左对齐。' '为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充。
width表示显示宽度
precision表示小数点后精度
%s 字符串 (采用str()的显示)%r 字符串 (采用repr()的显示)%c 单个字符%b 二进制整数%d 十进制整数%i 十进制整数%o 八进制整数%x 十六进制整数%e 指数 (基底写为e)%E 指数 (基底写为E)%f 浮点数%F 浮点数,与上相同%g 指数(e)或浮点数 (根据显示长度)%G 指数(E)或浮点数 (根据显示长度)%% 字符"%"
常用的格式符有%s和%d
1 #%[(name)][flags][width].[precision]typecode 2 t1="i am %(name)s,age is %(age)d" % { "name":"zy","age":19} 3 print(t1) 4 t2="percent %.2f" % 99.12345 5 print(t2) 6 t3="percent %(pp).3f" % { "pp":123.45678} 7 print(t3) 8 t4="%.2f%%" % 30.123 9 print(t4)10 11 执行结果:12 i am zy,age is 1913 percent 99.1214 percent 123.45715 30.12%16 17 #format18 p1="i am {},age {},No.{}".format("zy",18,"01")19 print(p1)20 p2="i am {},age {},No.{}".format(*["zy",18,"01"])21 print(p2)22 p3="i am {0},age {1},real {0}".format("zy",10)23 print(p3)24 p4="i am {0},age {1},real {0}".format(*["zy",10])25 print(p4)26 p5="i am {name},age {age},real {name}".format(name="zy",age=19)27 print(p5)28 p6="i am {name},age {age},real {name}".format(**{ "name":"zy","age":19})29 print(p6)30 p7="i am {0[0]},age {0[1]},real {1[0]}".format([1,2,3],[4,5,6])31 print(p7)32 p8="i am {:s},age {:d},money {:f}".format("zy",18,123.456)33 #f默认是6位小数34 print(p8)35 p9="i am {:s},age {:d}".format(*["zy",19])36 print(p9)37 p10="i am {name:s},age {age:d}".format(**{ "name":"zy","age":19})38 print(p10)39 p11="{:b},{:o},{:d},{:x},{:X},{:%}".format(15,15,15,15,15,15,87654)40 print(p11)41 p12="{num:b},{num:o},{num:d},{num:x},{num:X},{num:%}".format(num=16)42 print(p12)43 p13="{0:b},{0:o},{0:d},{0:x},{0:X},{0:%}".format(17)44 print(p13)45 p14="{:.2%}".format(0.123456)46 print(p14)47 48 执行结果:49 i am zy,age 18,No.0150 i am zy,age 18,No.0151 i am zy,age 10,real zy52 i am zy,age 10,real zy53 i am zy,age 19,real zy54 i am zy,age 19,real zy55 i am 1,age 2,real 456 i am zy,age 18,money 123.45600057 i am zy,age 1958 i am zy,age 1959 1111,17,15,f,F,1500.000000%60 10000,20,16,10,10,1600.000000%61 10001,21,17,11,11,1700.000000%62 12.35%