Python入门教程+项目实战-12.3节-使用字典进行格式化

news2024/11/24 4:09:47

目录

12.3.1 字符串的格式化

12.3.2 使用字典进行格式化

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

12.3.4 知识要点

12.3.5 系统学习python

12.3.1 字符串的格式化

在9.4节介绍了字符串的格式化,我们先来回顾下字符串格式化的定义,以及主要的格式化方法:

字符串的格式化是指按照特定的格式对字符串进行输出。对字符串进行格式化,主要有以下两种方法:一是通过操作符%,一是通过字符串类型的format方法。

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

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

也可以直接以关键字参数传递的形式来进行字符串格式化,实现的是同样的效果:

Python

# __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

 薯条老师简介:资深技术专家,技术作家,著有《Python零基础入门指南》,《Java零基础入门指南》等技术教程。薯条老师的博客:http://www.chipscoco.com, 系统学习后端,爬虫,数据分析,机器学习、量化投资。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/567008.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

万字长文详述ClickHouse在京喜达实时数据的探索与实践 | 京东云技术团队

1 前言 京喜达技术部在社区团购场景下采用JDQFlinkElasticsearch架构来打造实时数据报表。随着业务的发展 Elasticsearch开始暴露出一些弊端&#xff0c;不适合大批量的数据查询&#xff0c;高频次深度分页导出导致ES宕机、不能精确去重统计&#xff0c;多个字段聚合计算时性能…

从零开始的python教程:全面又好用的学习资料

Hi&#xff0c;大家好&#xff0c;我是蛋糕 最近因为接连带过一些训练营和成长营&#xff0c;也是可以与各位小伙伴进行更多的讨论&#xff0c;发现各位小伙伴最近也是迫切的想要学习一些新的技能&#xff0c;其中呼声最高的可能就是Python了&#xff0c;当然理由也是很多啦&a…

LeetCode 84 柱状图中最大的矩形

题目&#xff1a; 给定n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 示例 1: 输入&#xff1a;heights [2,1,5,6,2,3] 输出&#xff1a;10 解释&#xf…

职工人事管理系统_项目整合以及salary模块逻辑整理

项目&#xff1a; groupId 在所有项目中唯一标识您的项目。artifactId 是没有版本的 jar 的名称。Maven 中groupId 和artifactId 的主要区别在于&#xff0c;groupId 指定项目组的id&#xff0c;而artifactId 指定项目的id 配置完环境&#xff0c;如何测试自己的依赖安装完毕…

TDengine 成功“晋级” Percona Live 2023 银牌赞助商,开发者驻足关注

带着创新的数据技术走遍全球 这一次 陶建辉带着 TDengine 飞到了丹佛...... 2023 年 5 月 22-24 日&#xff0c;一年一度的开源数据库领域全球最具影响力峰会 Percona Live 2023 在丹佛技术中心万豪酒店举办。Percona Live 是全球持续举办最久的独立开源数据大会&#xff0c…

jsp测试题:

jsp测试选择题 题号答案1C2A3A4A5A6A7B8C9B10A11A12A13A14A15C 简答题&#xff1a; 1.在JSP中&#xff0c;<% int a 3; %>与<%! int b 3; %>中定义的变量有何不同&#xff1f;若要在某一JSP页面中定义一个方法void f()&#xff0c; 应用什么样的语法&#xff1…

社团管理系统

文章目录 社团管理系统一、项目演示二、项目介绍三、系统运行界面图四、系统部分功能截图五、部分代码展示六、底部获取源码 社团管理系统 一、项目演示 社团管理系统 二、项目介绍 基于SpringBoot2Vue的前后端分离的社团管理系统 前后端分离 前端开发 : Vue2 ElementUl 后…

“小白也能玩转Python数据分析,快速掌握技巧!

最近收到好几条私信&#xff0c;想要了解数据分析方面的学习教程。 Python如今势头很猛&#xff0c;但是结合市场环境来说&#xff0c;Python开发岗位的需求还是要低于其他后端语言&#xff0c;但是Python爬虫和数据分析的技能确是实实在在可以用到很多工作中去&#xff0c;所…

Linux 操作系统原理 — netfilter/iptables 流量处理框架

目录 文章目录 目录Netfilter 流量处理框架Netfilter 的实现原理Netfilter 的工作原理规则&#xff08;Rules&#xff09;链&#xff08;Chains&#xff09;表&#xff08;Tables&#xff09;数据包处理流程图 iptables CLIiptables-service指令应用查看规则添加规则删除规则修…

java按照模板导出pdf或者word

一、java按照模板导出pdf &#xff08;一&#xff09;制作模板 1、在word里制作模板 因为PDF常用的软件不支持编辑&#xff0c;所以先用Word工具&#xff0c;如WPS或者Office新建一个空白Word文档&#xff0c;里面制作出自己想要的样式。 2、 将Word转换成PDF形式 将设置好的W…

120G课程内容!龙讯旷腾为您的课题组打造专属空间

我们介绍了龙讯旷腾资源中心&#xff08;http://login.lonxun.com/login&#xff09;是一个知识管理与服务型的综合社区&#xff0c;但资源中心仅仅是一个简单的内容展示平台吗&#xff1f;对于高校课题组的教师和企业管理者来说&#xff0c;资源中心提供了多种辅助教学和建站功…

Ubuntu TDengine集群搭建

我这里用三台服务器搭建集群 1、如果搭建集群的物理节点上之前安装过TDengine先卸载清空&#xff0c;直接执行以下4条命令 rmtaos rm -rf /var/lib/taos rm -rf /var/log/taos rm -rf /etc/taos2、确保集群中所有主机开放端口 6030-6043/tcp&#xff0c;6060/tcp&#xff0c;…

Spring Boot 中如何使用 Spring Data MongoDB 来访问 MongoDB

Spring Boot 中如何使用 Spring Data MongoDB 来访问 MongoDB 简介 MongoDB 是一个流行的 NoSQL 数据库&#xff0c;其以灵活的数据模型和可扩展性而闻名。Spring Data MongoDB 是 Spring 框架的一个子项目&#xff0c;它提供了一种简单的方式来使用 MongoDB 数据库。在本文中…

ChatGPT工作提效之小鹅通二次开发批量API对接解决方案(学习记录同步、用户注册同步、权益订购同步、开发文档)

ChatGPT工作提效系列 ChatGPT工作提效之初探路径独孤九剑遇强则强ChatGPT工作提效之在程序开发中的巧劲和指令(创建MySQL语句、PHP语句、Javascript用法、python的交互)ChatGPT工作提效之生成开发需求和报价单并转为Excel格式 ChatGPT工作提效之小鹅通二次开发批量API对接解决…

TIA博途-32位浮点数大小端存储-高低字节转换的具体方法示例(4种字节排列顺序)

TIA博途-32位浮点数大小端存储-高低字节转换的具体方法示例(4种字节排列顺序) 如下图所示,新建一个项目后,添加一个1215PLC,添加一个FB块,块的接口变量如下, 如下图所示,该FB块的具体程序可参考下面的内容: 如下图所示,在数据块种添加3个变量用于FB块的功能测试,…

Java SPI 二 之 Java APT原理及APT实战 - 一步步教你写ButterKnife

一、定义 Java APT 是 Java 技术设计的一个 APT 架构&#xff0c; APT&#xff08;Annotation Processing Tool&#xff09;即注解处理器&#xff0c;它是一种处理注解的工具&#xff0c;也是javac中的一个工具&#xff0c;用于在编译阶段未生成class之前对源码中的注解进行扫…

小红书数据分析:首播卖6亿,小红书直播开启新纪元!

5月22日&#xff0c;章小蕙在小红书开启了第一场带货直播。继董洁之后&#xff0c;小红书又迎来一位超级带货KOL。 据千瓜数据显示&#xff0c;相关话题#章小蕙小红书直播#上线不到30天&#xff0c;话题浏览量就高达2814.89万&#xff0c;笔记互动量达22.24万。 图 | 千瓜数据…

Android 12.0下拉状态栏通知栏的通知设置默认展开

1.概述 在12.0的产品定制化中,对于SystemUI的定制也是常用的功能,而在下拉状态栏中的通知栏部分也是极其重要的部分,每条通知实时更新在通知栏部分,由于通知栏高度的限制,每条通知是默认收缩的,功能开发需要要求通知默认展开,所以就要从通知的加载流程分析 如图: 2.…

化工生产制造企业实施技术变革前要问自己的 6 个问题

化工企业将新技术&#xff08;大数据、人工智能、云计算、RFID、PDA、GIS&#xff09;引入到业务中&#xff0c;通过填补技术基础设施中的空白来帮助企业团队成员更高效、更有效地完成工作&#xff0c;是一项卓有成就的事情。但是&#xff0c;企业在急于快速实施新解决方案以获…

数字化时代,如何规范化搭建数据仓库?

数据仓库作为商业智能BI系统中的一部分&#xff0c;已经成长为了企业信息化建设中必不可少的重要支撑&#xff0c;在可见的未来&#xff0c;数据仓库还会随着信息化、数字化技术、理念、应用的落地&#xff0c;继续成长。 数据仓库是一个面向主题的、集成的、随时间变化但信息…