Dotcpp  >  编程教程  >  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. 总结

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



本文固定URL:https://www.dotcpp.com/course/255

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Python教程
第一章 Python入门
第二章 Python基础语法
第三章 Python入门语法
第四章 Python核心语法
第五章 Python函数
第六章 Python面向对象编程
第七章 Python模块
第八章 Python异常处理和程序调试
第九章 Python文件及目录操作
第十章 PythonGUI编程
第十一章 Python进程和线程
第十二章 Python数据库管理
第十三章 Python算法
第十四章 Python爬虫
第十五章 Python实战项目
第十六章 后记
Dotcpp在线编译      (登录可减少运行等待时间)