# -*- coding: utf-8 -*-
"""
Spyder Editor
This is a temporary script file.
"""
# 本讲小目标:
# 字典及其应用
# 编写程序,统计如下英文段落中每个单词出现的次数
# text = "I have a dream that one day down, in Alabama day dream governor day."
# #处理干扰数据
# text = text.replace("," ,"") #把,换成空格
# text = text.replace(".", "") #把.换成空格
# #分词
# text = text.split(" ") #利用空格把文章分割
# #词频统计
# # 逐个遍历分词结果列表中的单词遍历过程中完成单词出现次数统计
# word_dict = {} #存放统计结果
# for word in text:
# word_dict[word] = word_dict.get(word, 0) + 1
# #遍历字典,输出每个单词出现的次数:单词:次数,换行分隔
# for key in word_dict:
# print("{}:{}".format(key, word_dict[key]))
# # 将遍历字典改造成while循环:不具可行性,因为在while循环体中无法自动取下一个key
# # i = 0
# # while i<len(word_dict):
# # print("{}:{}".format(key, word_dict[key]))
# myDict = {"学号": "2019002010101","姓名": "张宏"}
# 字典的常用操作函数:
# # 1.字典对象的get函数:get(key, value)
# # 当key存在时:获取key对应的值;当key不存在时,返回调用get时指定的value
# 2.获取字典中全部的键key:
# myDict.keys()
# keys = list(myDict.keys())
# 3.获取字典中全部的值:
# myDict.values()
# values = list(myDict.vaules())
# 4.获取字典中的全部元素:
# myDict.items()
# items = list(myDict.items())
# 应用字典实现通讯录功能
# 1.分别定义和实现各个子功能函数
# 2.在主程序中根据用户的输入选择调用对应的函数
def menu():
print("-----欢迎使用通讯录程序----")
print("---1:显示所有联系人信息---")
print("---2:查询联系人信息------")
print("---3:新增联系人信息------")
print("---4:删除联系人信息------")
print("---0:退出程序------------")
return
def display(): #显示全部联系人的信息,姓名:手机号,换行
#遍历tel_dict
global tel_dict
for key in tel_dict: #遍历字典的方法
print("{}:{}".format(key, tel_dict[key]))
print("------------------------")
return
def find(): #查询某个联系人的信息
# 输入姓名
name = input("请输入待查询的联系人姓名:")
# 检查name是否已在通讯录中:name in tel_dict
# if name in tel_dict: print("{}的联系电话:{}".format(name,tel_dict[name])) #输出name对应的联系电话
# else: print("通讯录中没有该联系人信息!")
print(tel_dict.get(name, "通讯录中没有该联系人信息!")) #get名字对应的值也就是电话号码!
return
def add(): #新增联系人信息
global tel_dict
name = input("请输入联系人的姓名:")
tel = input("请输入联系人的手机号:")
#检查当前的name是否在tel_dict中已存在,如果已存在,则提示用户是否
#要修改该联系人的手机号
if name in tel_dict: #判断键是否已在字典中 #貌似顺序怪怪的变成输入名字以及她的新手机号然后才提醒你要不要改然后就修改成功了
yes_or_no = input("该联系人已存在,是否需要修改该联系人的手机号\
(y-是,n-否):")
if yes_or_no=="y": #修改
tel_dict[name] = tel
print("{}的信息已修改成功".format(name))
else: #当输入的是一个新的联系人信息时,新增键值对
tel_dict[name] = tel
print("{}的信息已添加成功".format(name))
return #当return后面没有跟上具体的返回值时,函数返回None
def delete():
# 输入待删除的联系人姓名
name = input("请输入待删除的联系人姓名:")
# 检查联系人是否存在,如果存在,则执行删除
if name in tel_dict:
del tel_dict[name]#执行删除
print("{}的信息已成功删除!".format(name))
# 如果不存在,则提示“通讯录中没有该联系人信息!”
else:
print("通讯录中没有该联系人信息!")
return
tel_dict = {} #tel_dict:全局变量,存储全部联系人的信息;键:姓名,值:手机号
##主程序
while True:
#输出菜单:调用菜单显示函数
menu()
#让用户输入操作选项
choice = eval(input("请输入操作选项:"))
#根据用户的输入选项调用不同的功能函数
if choice==1: display()
elif choice==2: find()
elif choice==3: add()
elif choice==4: delete()
else: break
# 敏捷迭代
# 通讯录的价值:
# 1.软件设计的一般方法:敏捷迭代
# 2.函数在软件模块化设计中的优点
# 3.字典结构的基本操作:遍历字典,修改字典元素,新增元素,删除元素,判断某个键
# 是否在字典中存在
# 问题延伸:通过读文件,将联系人信息读入字典;退出程序时,将当前字典中的联系人信息
# 写入到文件
Python通讯录
于 2024-01-10 16:10:22 首次发布

6760

被折叠的 条评论
为什么被折叠?



