Python基础教程

第一章: 环境搭建,安装Python

第二章: 挑选一款趁手的IDE

第三章: 计算机基础知识

第四章: 命令行基础知识

第五章: 从全局把握Python

第六章: Python语言基础

第七章: Python流程控制

第八章: Python数据类型与运算

第九章: Python字符串类型

第十章: Python列表类型

第十一章: Python元组类型

第十二章: Python字典类型

第十三章: Python集合类型

第十四章: Python函数处理

第十五章: Python文件处理

第十六章: Python面向对象

第十七章: Python异常处理

第十八章: Python模块处理

第十九章: Python高级编程

第二十章: Python项目实战

首页 > Python基础教程 > 第十二章: Python字典类型 > 12.3节: 使用字典进行格式化

12.3节: 使用字典进行格式化

薯条老师 2020-05-16 15:47:53 234570 0

编辑 收藏

广州番禺Python, Java小班周末班培训

薯条老师在广州做Python和Java的小班培训,一个班最多10人,学员的平均就业薪资有11K。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Python机器学习,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6

12.3.1 字符串的格式化

在9.4节介绍了字符串的格式化,我们先来回顾下字符串格式化的定义,以及主要的格式化方法:
字符串的格式化是指按照特定的格式对字符串进行输出。对字符串进行格式化,主要有以下两种方法:一是通过操作符%,一是通过字符串类型的format方法。

image.png

在本节的内容中,着重讲解通过字典类型来对字符串进行格式化。

12.3.2 使用字典进行格式化

使用字典进行格式化操作时,主要是通过关键字占位符的方式来进行格式化。这里的关键字占位符对应于字典中的键名,键名出现在待格式化的字符串中,在对字符串进行格式化时,Python解释器自动将字符串中的关键字占位符替换为对应的键值
(1) 使用%与字典进行格式化
格式化语法:
"%(key)s" % (dict)
key表示字典中的键名,s表示将关键字占位符格式化为字符串类型,同样可以将s换成其它的格式化类型,例如d,格式化为整型,f,格式化为浮点类型。
代码实例:
# __desc__ = 通过%操作符以及字典来进行字符串格式化
 
book = {"author": "薯条老师","price": 9.9 }
 
content = "这本书的作者是%(author)s, 售价仅为%(price).2f" % (book)
 
# content的输出为:这本书的作者是薯条老师, 售价仅为9.90
字符串中的关键字占位符,必须能在字典中匹配出对应的键名,否则Python会抛出键名不存在的错误异常,同学们可以在交互模式中进行验证:
>>> "这本书的作者是%(author)s" % ({})
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
KeyError: 'author'

(2) 使用format与字典进行格式化
1. 在format方法中以关键字参数的形式传递字典对象
格式化语法
"{param[key]}".format(param=dict)

字符串中待格式化的占位符与字典的形式一致,用{}括起来。在{}中以键名访问的形式输出对应的键值。在format方法中以关键字参数的形式传递字典对象。在Python中调用函数时,形如name=value的参数传递形式,即为关键字参数的传递语法。
代码实例:
# __desc__ = 通过format方法以及字典类型对字符串进行格式化
 
book = {"author": "薯条老师","price": 9.9 }
 
content = "这本书的作者是{book[author]}, 售价仅为{book[price]}".format(book=book)
 
"""
字符串中的字典名须与format方法中的参数名一致,
format方法中,操作符=左边的即为参数名,操作符右边的为实际的字典类型
"""
 
# 将参数名book改为arg
content = "这本书的作者是{arg[author]}, 售价仅为{arg[price]}".format(arg=book)
 
# content的输出为:这本书的作者是薯条老师, 售价仅为9.90
同样地,字符串中的关键字占位符,必须能在字典中匹配出对应的键名,否则Python会抛出键名不存在的错误异常。同学们可以继续在交互模式中进行验证。
2.使用**符号对字典进行解包
格式化语法
"{key}".format(**dict)
{}中的key表示字典中的键名,在format方法中使用**对dict进行解包时,在format中会展开为name=value的关键字参数传递的形式。name为字典中的键名,value为键名所对应的键值。
# __desc__ = 通过format方法以及字典类型对字符串进行格式化
 
book = {"author": "薯条老师","price": 9.9 }
 
content = "这本书的作者是{author}, 售价仅为{price}".format(**book)
 
"""
在format方法中使用**对字典进行解包时会展开为关键字参数的形式:
format(author=book["author"], price=book["peice"])
"""
 
# content的输出为:这本书的作者是薯条老师, 售价仅为9.90
也可以直接以关键字参数传递的形式来进行字符串格式化,实现的是同样的效果:
# __desc__ = 以关键字参数传递的形式来进行字符串格式化
 
book = {"author": "薯条老师","price": 9.9 }
 
content = "这本书的作者是{author}, 售价仅为{price}".
format(author=book["author"], price=book["price"])
 
# content的输出为:这本书的作者是薯条老师, 售价仅为9.90

12.3.3 格式化操作方法的优缺点

在讲解格式化操作的优缺点前,先举几个简单的例子:分别通过格式化符号以及字典类型来进行格式化。
代码实例:
# __desc__ = 通过格式化符号进行格式化
 
book = {"author": "薯条老师","price": 9.9 }
content = "这本书的作者是%s, 售价仅为%.2f" % (book["author"], book["price"])
 
# content的输出为:这本书的作者是薯条老师, 售价仅为9.90
使用格式化符号进行格式化时,Python会进行类型检查,数据类型必须与格式化符号代表的类型一致或能隐式地转换为对应的数据类型,否则会抛出类型错误的异常信息。
# __desc__ = 数据类型必须一致或能隐式地转换为对应的类型
 
book = {"author": "薯条老师","price": 9.9 }
 
# 某程序员由于上班时浏览不良网站,粗心地将格式化符号%s写成了%d
content = "这本书的作者是%d, 售价仅为%.2f" % (book["author"], book["price"])
 
"""
(1) 执行上文代码时,Python抛出了类型错误异常
(2) %d表示格式化为整型,但是传递的为字符串类型
字符串类型不能隐式地转换为整型
"""
代码实例:
# __desc__ = 通过字典类型进行格式化
 
book = {"author": "薯条老师","price": 9.9 }
content = "这本书的作者是{author}, 售价仅为{price}" % (**book)
 
# content的输出为:这本书的作者是薯条老师, 售价仅为9.90

使用字典类型进行格式化操作时,不会进行类型检查,仅进行文本替换,与格式化操作相比,可读性更强。使用格式化符号的字符串:

"这本书的作者是%d, 售价仅为%.2f"

使用字典类型进行格式化的字符串:

"这本书的作者是{author}, 售价仅为{price}"

12.3.4 知识要点

(1) 字符串的格式化是指按照特定的格式对字符串进行输出。对字符串进行格式化,主要有以下两种方法:一是通过操作符%,一是通过字符串类型的format方法。
(2) 使用字典进行格式化操作时,主要是通过关键字占位符的方式来进行格式化。这里的关键字占位符对应于字典中的键名
(3) 字符串中的关键字占位符,必须能在字典中匹配出对应的键名,否则Python会抛出键名不存在的错误异常

12.3.5 最具实力的小班培训

薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。

(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪11K-20K, 免费领取课程大纲
(4) Python大数据分析,量化投资就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取Python学习资料:


欢迎 发表评论: