继续进行我的《Python从入门到实践》的读书笔记,这也是适合初学者的学习教程。
我的手绘题图-别离的深秋 请点击以下蓝色字链接,进入代码编程页面,输入文章中的代码进行练习,点击运行就可以查看运行结果。注:文章中的代码均可以直接复制粘贴再运行,建议第一遍复制复制粘贴运行,然后再对照代码手动输入练习,更加深印象。
Python在线编程页面1
Python在线编程页面2
祝你在Python的平行异世界玩得开心!
回忆一下,我们前次学习了第六章前四节。
图片来自我的自制思维导图
给字典赋值,与其他变量赋值略有不同,字典中的值是一对一对的数据,每对数据都包含“键”和"值“两个方面,每对数据之间用逗号分隔,键和值之间用冒号联系。
回忆一下前一次课给字典赋值,并显示出字典中的键值对的取值,代码如下:
x={"name":"robot","color":"yellow","point":5}
print(x)
以上方框中的代码可以直接复制粘贴到Python在线编程页面,点击运行得到结果。
复习一下添加键-值对,接上面代码书写如下:
x['level']=1
print(x)
给字典赋值、添加键-值对
复习一下修改键-值对,接上面代码书写如下:
x['point']=666
print(x)
修改键-值对
复习一下删除键-值对,接上面代码书写如下:
x={"name":"robot","color":"yellow","point":5}
del x['name']
print(x)
给字典赋值、添加键-值对、修改键-值对、删除键-值对
复习一下遍历所有键-值对,引用字典时要注意格式为:字典名.items()
要编写遍历所有键-值对的for循环,要申明两个变量,分别用于存储字典中的键和值
接上面代码书写如下:
for m,n in x.items():
print(m)
print(n)
遍历所有键-值对
复习一下遍历所有键,引用字典时要注意格式为:字典名.keys()
接上面代码书写如下:
for m in x.keys():
print(m)
要按顺序遍历所有键,引用字典时要注意格式为:sorted(字典名.keys())
接上面代码书写如下:
for m in sorted(x.keys()):
print(m)
复习一下遍历所有值,引用字典时要注意格式为:字典名.values()
接上面代码书写如下:
for m in x.values():
print(m)
要按顺序遍历所有值,引用字典时要注意格式为: sorted(字典名.values())
接上面代码书写如下:
for m in sorted(x.values()):
print(m)
遍历所有值时,若想剔除掉重复值,只显示不重复的值,则在引用字典时要注意格式为: set(字典名.values())
新增加两个重复值,再接上面代码书写如下:
x['sex']='yellow'
x['number']=666
for m in x.values():
print(m)
for m in set(x.values()):
print(m)
复习一下字典列表,代码如下:
a0={"color":"yellow","point":5}
a1={"color":"green","point":10}
a2={"color":"red","point":15}
y=[a0,a1,a2]
print(y)
字典列表
也可以直接赋值,不使用中间变量,运行结果完全相同
当列表中元素的内容较多时,可使用以下分行书写的方法
y=[
{"color":"yellow","point":5},
{"color":"green","point":10},
{"color":"red","point":15}
]
print(y)
复习一下6.4.2在字典中存储列表,每当需要在字典中将一个键关联到多个值时,就可以在字典中嵌套一个列表,代码如下:
x={'a':1,'b':[1,2,3,4,5]}
print(x['a'])
for y in x['b']:
print(y)
在字典中嵌套一个列表
今天我们开始学习第六章的最后一个内容,6.4.3在字典中存储字典
第四节内容思维导图
在字典中存储字典,在实际代码中经常用到。
例如:在网站中,有很多个用户,每个用户都有自己的一组相关信息;
还有,在学生信息管理系统中,有多名学生,每名学生对应一组个人信息。
以上这些情况,就可以使用在字典中存储字典,来轻松进行数据的管理。
代码如下:
# -*- coding: UTF-8 -*-
users={'亚瑟':{
'first':'zhang',
'last':'san',
'location':'Beijing',
},
'伊丽莎白':{
'first':'li',
'last':'Si',
'location':'hubei',
},
}
for x,y in users.items():
print('昵称:'+x)
fullname = y['first']+""+y['last']
location=y['location']
print('真实姓名:'+fullname.title())
print('籍贯:'+location.title())
运行结果如下图右边窗口所示:
截图04.png 详细解释一下以上语句的作用,我们首先定义了一个名为users的字典,其中包含两个键,即用户名是亚瑟和伊丽莎白,其中每个键相关联的值都是一个字典,其中包含用户的姓名和籍贯。 在字典中存储字典for语句遍历字典,设置x和y两个变量,分别用来存储键的内容和值的内容,然后显示键和值的内容。
需要注意的是,虽然Python没有要求,但我们设计时保证用户的字典结构都相同,可以使嵌套的字典处理起来更容易。
如果用户的字典结构都不相同,for循环的代码将会更复杂。
今天的新课内容不多,但是初接触字典里面的字典感觉有点烧脑。
下面是脑洞大开时间,请对照书中的练习来试试自己第六章掌握得怎么样吧,如果所有题目都能做出来,说明真的理解和掌握了,如果不能,那就再看一遍书和我的简易教程吧,书读百遍就能多看懂一点,这是真理没错的。
动手试一试
6-7 人:在为完成练习6-1而编写的程序中,再创建两个表示人的字典,然后将这三个字典都存储在一个名为people的列表中。遍历这个列表,将其中每个人的所有信息都打印出来。
6-8 宠物:创建多个字典,对于每个字典,都使用一个宠物的名称来给它命名;在每个字典中,包含宠物的类型及其主人的名字。将这些字典存储在一个名为pets的列表中,再遍历该列表,并将宠物的所有信息都打印出来。
6-9 喜欢的地方:创建一个名为favorite_places的字典。在这个字典中,将三个人的名字用作键;对于其中的每个人,都存储他喜欢的1~3个地方。为让这个练习更有趣些,可让一些朋友指出他们喜欢的几个地方。遍历这个字典,并将其中每个人的名字及其喜欢的地方打印出来。
6-10 喜欢的数字:修改为完成练习6-2而编写的程序,让每个人都可以有多个喜欢的数字,然后将每个人的名字及其喜欢的数字打印出来。
6-11 城市:创建一个名为cities的字典,其中将三个城市名用作键;对于每座城市,都创建一个字典,并在其中包含该城市所属的国家、人口约数以及一个有关该城市的事实。在表示每座城市的字典中,应包含country、population和fact等键。将每座城市的名字以及有关它们的信息都打印出来。
6-12 扩展:本章的示例足够复杂,可以以很多方式进行扩展了。请对本章的一个示例进行扩展:添加键和值、调整程序要解决的问题或改进输出的格式。
6.5 小结
本章我们学习了,以下内容:
第六章在下一章中,我们将学习while循环以及如何从用户那里获取输入。
正如书中所说“这是激动人心的一章,让你知道如何将程序变成交互性的——能够对用户输入作出响应。”
对于我这种喜欢折腾的人来说,一直都想要自己输入一些语句内容来进行好玩的互动,终于可以大玩特玩了,我一直想要把实体书的作者的第一个程序写出来玩玩的,这下子可以实现了,撒花!
20171013初稿开写
2017101418:16结稿
正文到此处结束,谢谢你的时间和关注:)
话唠的例行PS,与学习关系不大,可以不看,只为记录写文章的状态:
1、一直不清楚,为什么不能添加中文的注释,一加就报错,然后就放弃了,今天。。。。终于开窍了,原来python只支持ASCII码,如果要加ASCII以外的字符,就要在整个代码的最前面加上一句(暂时我还不知道是啥作用的)语句就行了,此语句一定要添加在源代码的第一行,代码如下:
# -*- coding: UTF-8 -*-
或者
#coding=utf-8
添加中文的注释
参考文章:关于Python报错:SyntaxError: Non-ASCII character '\xe5' in file的解决方法
链接:https://my.oschina.net/panjavay/blog/142682
2、交稿时间一拖再拖,这是很少见的过了五点才完成文章的写作的状况,在电脑前坐了一天,一直在东搞搞西搞搞,什么都折腾完了,就是文章还没有写一个字,这样的状况,希望下次有所改善。这次文章是从昨天开始写的,昨天花了两个小时,今天又花了一个半小时,主要卡在最后那个程序,不知道为什么,怎么调试都不正确,老是出错,后来才发现,在字典内嵌套的字典里,不能使用汉字,哪怕全部代码使用了的UTF-8申明也不行,好吧,改变能改变的,接受不能改变的,这就是聪明人的做法,只好把嵌套的字典全部改为了英文字母,就OK了。
3.总结一下,内容不熟练,新旅程上会出现N多不可预期的问题,所以预留的写文章的时间,不应该包括进行新知识学习的时间,仔细想想我自己最喜欢的那一篇《降临》电影和小说的结合写的文章,阅读和看电影都是在写文章之前就全部完成了的,所以感觉写起来会很顺利,效果也很好,记住,下次提前先看书,再写文章。
2017101418:16
2017101418:23
网友评论