字符串格式化
我们经常会遇到输出“亲爱的 xx 您好,您 xx 月的话费是xx,余额是xx!”这样的字符串,其中xx的内容会根据变量变化的,所以就需要一种简便的方法来格式化字符串。
在python中通过%来实现,下面举几个小例子:
>>>"Hello,my name is %s" % "gaoyue"
"Hello,my name is gaoyue"
>>>"Hi,%s,what are you doing!" % "LiMing"
"Hi,LiMing,what are you doing!"
你可以从上面的小例子看出来%是用来格式化字符串的,%前面字符串中。%s表示的是占位符,可变。 %后面跟着的是替换到%s位置的变量。
那么常见的占位符就有:
%d: 整数
%f: 浮点数
%s: 字符串
%x: 十六进制整数
%d 和 %f 还可以指定位数。例如:
>>>"%2d-%02d" % (1,2)
" 1-02"
>>>"%.2f" % 3.1415926
"3.14"
%2d----->表示的是占2个位置的整数。不够2位用空格来补。
%02d---->表示的是占2个位置的整数。不够用0来补。
当然:如果后面的数字比前面规定的大,则直接输出本来的数字。
%.2f---->表示的是浮点数,保留小数点后2位。如果小数点前面也加上数字n,表示保留浮点数总共占位n个位置,不够用空格补,小数点后2位。
如果你不确定要格式化的是什么,那么就用%s,%s永远起作用。它会把任何数据类型都转化成字符串:
>>>"My name is %s,i am %s years old!" % ("gy",25)
"My name is gy,i am 25 years ole!"
有的时候字符串中需要输入百分比%。那么就需要转义了。 %%表示一个没有格式化意义的%。
>>>"%d %%" % 12
"12 %"
下面我们来了解下join和format格式化输出方法:
join:
"-".join("abcdef")
以 - 为连接符,把字符串"abcdef"中的各个元素拼接起来。这样的输出结果就是。
a-b-c-d-e-f
format:
"{0}{1:4}{2:4}{3:4}",format(1,2,3,"a")
{0} 表示format后面跟着的第一个变量。同理后面的1,2,3也是一一对应的。
而{1:4}中的4,是占位符。表示的是format后面第二个变量,从前一个变脸占位结束开始占4位,如果不写则默认占位变量的大小。
还有变量默认的排列方式是右对齐。也就是说{1:4}表是的是从1后开是空格3个再输出3。如果想要居中显示可以在占位数前加上 ^ ,表示后面的变量居中显示。
"{0:^5}.format(1)"------> 1 ;1居中显示 左右各2个空格。