零基础学习Python 作业 第25章
0 当你听到小伙伴在讨论 “映射”、”哈希”、”散列” 或者 “关系数组” 的时候,
事实上他们就是在讨论什么呢?
个人理解就是字典
1 尝试一下将数据(‘F’:70, ‘C’:67, ‘h’:104, ‘i’:105, ‘s’:115)创建为一个字典并访问键’C’对
应的值?
>>> dict1={'F':70,'C':67,'h':104,'i':105,'s':115}
>>> dict1
{'i': 105, 'h': 104, 'C': 67, 's': 115, 'F': 70}
>>> dict1['C']
67
>>>
2 用方括号(“[]”)括起来的数据叫列表,那么用大括号(“{}”)括起来的就叫字典,对吗?
不对,字典需要关键字和值,大括号不一定同时满足这两者。也就是一定要包含映射关系
3 你如何理解有些东西字典做得到,但万能的列表却难以实现?
比如两个列表中的值并不是顺序上一一对应,用列表查询时会造成极其的不便
4 下边这些代码,他们在执行一样的操作吗?你看的出差别吗?
a = dict(one = 1, two = 2, three = 3)
b = {'one':1, 'two':2, 'three':3}
c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
d = dict([('two', 2), ('one', 1), ('three', 3)])
e = dict({'three':3, 'one':1, 'two':2})
一样:{'three': 3, 'two': 2, 'one': 1}
5 如图,你可以推测出打了马赛克部分的代码吗?
data = '1000, 小甲鱼, 男'
MyDict = {}
(MyDict['id'], MyDict['name'], MyDict['sex']) = xxxxx
print("ID: " + MyDict['id'])
print("Name: " + MyDict['name'])
print("Sex: " + MyDict['sex'])
粗暴方案: (1000, 小甲鱼, 男)
高级方案: data.split(‘,’)
0 尝试利用字典的特性编写一个通讯录程序吧!
# 分析
# 通讯录内容包含: 姓名, 电话, Email, 地址.....
# 通讯录功能包含: 查询, 新增, 删除
# 系统功能: 退出
print('|========欢迎进入通讯录========|')
print('|========1: 查询联系人========|')
print('|========2: 添加联系人========|')
print('|========3: 删除联系人========|')
print('|========4: 退出通讯录========|')
contacts = dict()
while 1:
instr = int(input('\n请输入相关的操作指令: '))
if instr == 1:
name = input('请输入联系人姓名: ')
if name in contacts:
print(name + ':' + contacts[name])
else:
print('查询的姓名不在通讯录中!')
if instr == 2:
name = input('请输入新增联系人姓名: ')
if name in contacts:
print('该联系人已在通讯录中 -->>', end = ' ')
print(name + ':' + contacts[name])
if input('是否修改用户资料(Yes/No)') == 'Yes':
contacts[name] = input('请输入用户联系电话: ')
else:
contacts[name] = input('请输入用户联系电话: ')
if instr == 3:
name = input('请输入联系人姓名: ')
if name in contacts:
del contacts[name]
else:
print('你输入的联系人不在通讯录中!')
if instr == 4:
break
print('|========感谢使用通讯录========|')
#Test
|========欢迎进入通讯录========|
|========1: 查询联系人========|
|========2: 添加联系人========|
|========3: 删除联系人========|
|========4: 退出通讯录========|
请输入相关的操作指令: 2
请输入新增联系人姓名: 笑笑
请输入用户联系电话: 18800475886
请输入相关的操作指令: 2
请输入新增联系人姓名: 李宁
请输入用户联系电话: 13265723459
请输入相关的操作指令: 2
请输入新增联系人姓名: 洋洋
请输入用户联系电话: 18990765438
请输入相关的操作指令: 1
请输入联系人姓名: 笑笑
笑笑:18800475886
请输入相关的操作指令: 1
请输入联系人姓名: 李宁
李宁:13265723459
请输入相关的操作指令: 3
请输入联系人姓名: 笑笑
请输入相关的操作指令: 1
请输入联系人姓名: 笑笑
查询的姓名不在通讯录中!
请输入相关的操作指令: 4
# coding=UTF-8
# 分析
# 通讯录内容包含: 姓名, 电话, Email, 地址.....
# 通讯录功能包含: 查询, 新增, 删除
# 系统功能: 退出
print('|========欢迎进入通讯录========|')
print('|========1: 查询联系人========|')
print('|========2: 添加联系人========|')
print('|========3: 删除联系人========|')
print('|========4: 退出通讯录========|')
contacts = dict()
while 1:
number = raw_input('请输入查询数字:')
if int(number) == 4:
print("欢迎下次访问!")
break
if int(number)== 1:
namekey = raw_input('请输入查询联系人姓名:')
if namekey in contacts:
print(contacts[namekey])
else:
print('查询的客户不存在!')
if int(number)== 2:
Lxname = raw_input('请输入需要添加的联系人姓名:')
if Lxname in contacts:
print('新增的联系人已经存在!')
else:
LXtel = raw_input('请输入需要添加的联系人手机号:')
contacts1 = {Lxname:LXtel}
contacts.update(contacts1)
if int(number)== 3:
deletename = raw_input('请输入需要删除的联系人姓名:')
if deletename not in contacts:
print('输入的联系人不存在!')
else:
contacts.clear()