格式化字符串_Python教程
在学习字符串的过程中,我们在前面讲了很多使用方法,实际在使用的过程中,我们经常会需要将字符串格式化,通过格式化输出我们需要的结果。
格式化字符串就是在先创建一个空间,然后再这个空间留几个位置,然后根据需求填入相应的内容,
这里留出的位置相当于占位符,格式化字符串有两种方式。一种是使用%操作符,一种是使用format()方法。
1. %操作符
%操作符在我们格式化字符串的时候十分方便,它的语法结构如下:
‘%[+][-][0][.m]格式化字符’%iteration
1) iteration为我们要填入的内容,第一个%后面为我们要选择的格式。
2) [+]为右对齐‘+’为我们可以填入的参数,数字大小代表对齐宽度。
3) [-]为左对齐‘-’为我们可以填入的参数,数字大小代表对齐宽度。
4) [.m]中的m为可选精度,表示保留小数点后几位小数。
5) 格式化字符为我们需要选定的格式,它的常用类型为字符串%s、十进制整数%d、单字符%c、浮点数%f、十六进制数%x、八进制数%o、字符%%。
关于%操作符的理解可能比较抽象,我们通过例子来了解一下它。我们比较常用的就是输出一个浮点数,小数点后保留2位小数,代码如下:
>>> my_str =66666.66666 >>> print('保留2位小数格式为:%.2f'%my_str)保留2位小数格式为:66666.67
保留小数的时候会自动进行四舍五入操作,在使用的时候主要注意它的形式,我们可以选择一个或多个组合在一起来格式化字符串,上面是我们使用了一种格式化操作,格式化部分为‘%.2f’,然后再字符串的最后用%连接相应字符串即直接等同于相应内容。
我们再介绍一下对齐方式的使用:
>>> for i in range(5): ... print('%-5d'%i,end=' ')#左对齐方式 ... print('%5d'%i)#右对齐方式 ... 0 0 1 1 2 2 3 3 4 4
5是代码对齐的宽度,我们采用左右对齐,第一列为左对齐,宽度为5,然后不换行再次输出i,第二次输出为右对齐,因此输出入上所示。
关于%操作符就将到这里,大家在下面自己进行练习可以更快的去掌握这些知识。
2. format()方法
format()方法提供了更多的方法去格式化字符串,它的基本语法是通过‘{}’和‘:’来代替‘%’。它的语法格式为:
str.format()
我们通过例子来看一下:
namea = '小明' nameb = '小华' print('{}是{}的好朋友'.format(namea,nameb))
这个例子是最简单的使用方式,但是既然这个方法是后来引入的方法,那么它一定有它比较好用的地方,下面我们介绍一下它的具体方法。
在占位符里结构可以为:
{[index[:[fill]align][width][#][.k][type]]}
通过图来看一下这个结构:
在上面那个例子中只包含了简单的‘{}’,如果我们加以修饰的话可以使用上面的这些结构,我们来一一说明:
1) index为索引位置,我们可以给他一个数字,用来指定对象在列表中的索引位置,索引值从0开始,如果没有索引值,按从左到右的顺序。像上面的例子,我们如果加了索引值:
namea = '小明' nameb = '小华' print('{1}是{0}的好朋友'.format(namea,nameb))
那么他们的位置就进行了一个调换。
2) ‘:’为后续内容使用的前提,使用后面操作的时候都要加一个‘:’。
3) fill可以选择一个参数作为空白填充的字符数。
4) width是可以选择一个参数来指定长度。
5) align可以选择一个参数作为对齐方式,参数为‘>’代表右对齐,‘<’为左对齐,‘=’为右对齐,但是符号放在最左侧,‘^’代表居中,这些需要搭配width使用。
我们看个例子:
>>> my_str = 'dotcpp' >>> print('{:@>10}'.format(my_str)) @@@@dotcpp
这个例子里我们选择了右对齐,然后宽度为10,空白字符用符号@代替。
6) ‘#’为进制前缀。
7) .k中的k是可选参数,用来表示小数点后保留的数字。
8) type可选择参数来指定类型,常用的有S来表示字符串、D来表示十进制整数、%来表示百分比、f或者F表示浮点数。
下面我们在通过一个例子来使用一下上述这些方法。
my_str = 'dotcpp'#先定义两个字符串 my_string = 123456.654321 print('my_str:{1:!^20s}\nmystring:{0:$^20.2f}'.format(my_string,my_str))
输出为:
my_str:!!!!!!!dotcpp!!!!!!! mystring:$$$$$123456.65$$$$$$
对于my_str,‘1‘为它的索引位置,‘!’来替代空白字符,‘^’代表位置居中,20为宽度,‘s’为字符串类型。
对于my_string,‘0’位它的索引位置,‘$’来代替空包字符,‘^’代表位置居中,20位宽度,‘.2’为小数点后保留2位小数,’f‘为浮点类型。
3. 总结
关于字符串就讲到这里,字符串的使用是十分频繁的,所以大家一定要通过习题去练习并掌握它。