格式化字符串_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]]}

        通过图来看一下这个结构:

python字符串2

        在上面那个例子中只包含了简单的‘{}’,如果我们加以修饰的话可以使用上面的这些结构,我们来一一说明:

        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. 总结

        关于字符串就讲到这里,字符串的使用是十分频繁的,所以大家一定要通过习题去练习并掌握它。

代码注释
[!--zhushi--]

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!