当前位置: 首页 > news >正文

Python从入门到高手9.3节: 利用字典进行格式化

目录

9.3.1 字符串的格式化

9.3.2 使用字典进行格式化

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

9.3.4 让钱化作相思雨


9.3.1 字符串的格式化

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

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

image.png

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

9.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__ = 以关键字参数传递的形式来进行字符串格式化
book = {"author": "薯条老师","price": 9.9 }
content = "这本书的作者是{author}, 售价仅为{price}".
format(author=book["author"], price=book["price"])
# content的输出为:这本书的作者是薯条老师, 售价仅为9.90

9.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}"

9.3.4 让钱化作相思雨

跟薯条老师学高级爬虫(JS逆向+安卓逆向),数据分析,数据科学,金融量化交易,以及机器学习+深度学习+大模型算法。坚持下去,你一定会成为高手。

薯条老师的学生在南方电网,林氏家居,京东,阿里等大厂。薯条老师的个人技术博客:Python神仙级入门教程-零基础学习数据分析,高级爬虫,机器学习+大模型算法。对本节教程有任何不懂的同学,亦可在评论区中进行评论。

http://www.lryc.cn/news/621775.html

相关文章:

  • GoLand深度解析:智能开发利器与cpolar内网穿透方案的协同实践
  • 配置国内加速源后仍然无法拉取镜像
  • Vue2与Vue3生命周期函数全面解析:从入门到精通
  • 【自动驾驶】自动驾驶概述 ② ( 自动驾驶技术路径 | L0 ~ L5 级别自动驾驶 )
  • Linux软件编程(五)(exec 函数族、system、线程)
  • Unity导航寻路轨迹可视化实现
  • Unity_数据持久化_Json
  • Ubuntu DNS 综合配置与排查指南
  • 小程序上拉加载下一页数据
  • 基于HTML5与Tailwind CSS的现代运势抽签系统技术解析
  • GEO入门:什么是生成式引擎优化?它与SEO的根本区别在哪里?
  • 流处理、实时分析与RAG驱动的Python ETL框架:构建智能数据管道(中)
  • Fanuc机器人EtherCAT通讯配置详解
  • 【Linux基础知识系列】第九十六篇 - 使用history命令管理命令历史
  • 【机器人】人形机器人“百机大战”:2025年产业革命的烽火与技术前沿
  • Zabbix【部署 01】Zabbix企业级分布式监控系统部署配置使用实例(在线安装及问题处理)程序安装+数据库初始+前端配置+服务启动+Web登录
  • 在 Vue2 中使用 pdf.js + pdf-lib 实现 PDF 预览、手写签名、文字批注与高保真导出
  • 力扣习题:基本计算器
  • Spring 工具类:StopWatch
  • Java 泛型类型擦除
  • 【递归、搜索与回溯算法】DFS解决FloodFill算法
  • Pytest项目_day17(随机测试数据)
  • JUC学习笔记-----LongAdder
  • 2025年最新油管视频下载,附MassTube下载软件地址
  • 嵌入式 C 语言编程规范个人学习笔记,参考华为《C 语言编程规范》
  • 嵌入式硬件篇---电容串并联
  • 嵌入式硬件篇---电容滤波
  • flutter开发(二)检测媒体中的静音
  • Flinksql bug: Heartbeat of TaskManager with id container_XXX timed out.
  • 对抗损失(GAN)【生成器+判断器】