python最佳入门教程(27): 使用字典进行格式化

1 教程引言

本教程基于python3.x,是针对初学者的一系列python入门教程,在知乎上常有人问我计算机该怎么学,如何自学编程,笔者也是通过自学编程而进入IT这一行业的,回顾入行的这几年,从音视频流媒体辗转到人工智能深度学习,机器视觉,我是下了不少苦心的,对于如何学习有自己的一套理论和实践方法,很多人自言学编程不得其门,把学不会归咎于天分,其实芸芸众生,智力无别,你现在所看到的是技术大牛们一个个超凡绝顶(然知此绝顶非彼绝顶^_^),看不到的是曾经的他们,也在每个昼夜里用心苦学。再者学一门技术,需要勤学刻苦,是需要讲究方法和基础的,方法对了就事半功倍,所谓的天才也无不是建立在扎实的基础之上。

源码实例

GiantFurnace/python-basic-tutorial​github.com

爱学习的人都喜欢用薯条计划来制定学习计划,现在来扫码使用吧 !

 

 

3 字符串的格式化

在教程的第15节中,笔者介绍了字符串的格式化:

侠隐七三:python最佳入门教程(15): 字符串格式化​zhuanlan.zhihu.com

在字符串的格式化操作中,我们可以使用操作符'%'与字符串的format方法来对字符串进行格式化。

使用操作符'%'配合格式化符号来对字符串进行格式化,而使用format函数进行格式化时,主要有通过位置占位符和关键词占位符的方式来对字符串进行格式化。

4 使用字典进行格式化

使用字典进行格式化操作时,系通过关键字占位符的方式来进行格式化。这里的关键字占位符即字典中的键名,键名出现在待格式化的字符串中,在对字符串进行格式化时,python解释器将字符串中的键名访问替换为对应的键值

4.1 使用 '%'操作符配合字典来对字符串进行格式化

在介绍利用字典进行格式化前,我们先写个使用 '%'操作符+格式化符号进行字符串格式化的例子:

string = "我学习%s已经有%d天了"  
formatted_string = string % ("python", 30)    

在上面的例子中,格式化符号'%s' 对应的是字符串'python', '%d' 对应的是整型30,字符串被格式化后的输出为:"我学习python已经有30天了" 。

我们接着写个用字典来进行格式化的例子:

params = {"language": "python", "days": 30}
string = "我学习%(language)s已经有%(days)d天了"  
formatted_string = string % (params)   

上面用字典进行格式化的输出与上文中使用 '%'操作符+格式化符号进行格式化的输出是完全一样的,我们现在来对比下两者的区别。

第一个例子中的格式化符号'%s'对应于第二个例子中的'%(language)s',我们可看出第二个例子中的格式化符号多了个(language), 而这里的language对应的是字典中的键名。同样地,'%d'对应的是'%(days)d'。我们从中可以看出,格式化符号依然充当格式化的作用,并且限定了格式化的数据类型,只是具体的值由字典中的键值进行了替代。

由现象推导出一般规律,然后再进行验证,这是笔者向大家分享的第二个学习方法。

使用 '%'操作符配合字典来对字符串进行格式化的操作语法:

'%(键名)'+格式化符号,这里的格式化符号即不带'%'符号的'%s,%d'等,格式化符号限定了格式化的数据类型,数据类型不匹配或不能进行隐式地类型转换时,会抛出系统异常。

我们现在来进行验证,继续看代码例子:

params = {"food": "面包", "pocket_money": 16.88}
string = "我今天买了个%(food)s,这个月的零用钱只有%(pocket_money)f了"  
formatted_string = string % (params)
# 格式化后的输出为 我今天买了个面包,这个月的零用钱只有16.88了

4.2 使用format方法配合字典来对字符串进行格式化

我们直接看代码实例:

book = {"第三章": 75}
speaking = "我现在看到第三章了,它在书本中的第{book[第三章]}页".format(book=book)
# 输出为:我现在看到第三章了,它在书本中的第75页

这里的format格式化输出中,python解释器将字符串中的'{book[第三章]}' 替换为字典中的键名"第三章"所对应的键值75

使用**符号对字典进行展开,此时展开后的字典在format函数中形如键名=键值的形式,我们继续看实例:

languages = {"language": "python"}
speaking = "我现在正在学{language}".format(**languages)
# speaking输出为:我现在正在学python

在上面的format格式化例子中,字典languages在format中的展开形式为format(language="python")。

在格式化输出中,python解释器将待格式化字符串中的{language}替换为对应的键值languages["language"]。

我们也可以直接使用字典展开的形式来对字符串进行格式化:

speaking = "我现在正在学{language}".format(language="python")
# speaking输出为:我现在正在学python

5 使用关键字占位符进行格式化操作的优点

我们在进行程序设计时,一个很重要的原则是程序的可读性。所谓的可读性,即代码的可接受度,可理解度,代码越容易让人理解,表达的意思越明确,则可读性更高。程序良好的可读性体现在很多方面,譬如变量的命名,关键逻辑的注释,代码中的语义描述等等。

使用关键字占位符进行格式化操作,可以增强代码的可读性:

string = "这本书售价为%d"
string = "这本书售价为{price}"
# 与上面的格式化相比,我们更容易理解的是,要格式化的是书本的价格这个属性

6 本节知识要点

(1) 使用%符号以及format方法对字符串进行格式化
(2) 由现象推导出一般规律,然后进行验证
(3) 使用**符号对字典进行展开,展开后的形式为:键名1=键值1,键名2=键值2,...

版权声明:教程著作权归侠隐七三所有,未经允许,不得以任何形式进行传播

想自学编程,提升编程水平,或者对学习,及职业发展有困惑的,可以扫码加我们的微信群-薯条社区,在这个群里面,有初入行的程序员,也有在互联网行业奋战多年的老兵,大家一起相互交流,探讨,也许会给你带来一些帮助。由于微信群已超过100人,可以先加我的微信,再拉你们进群,加我时请报暗号"薯条"。

你可能感兴趣的:(好学)