python实现手机通讯录搜索功能
本文实例为大家分享了python通过输入联系人首字母查询联系人的具体代码,供大家参考,具体内容如下
#-*-coding:utf-8-*-
#练习2:
#模拟手机通讯录搜索功能
classPERSON(object):
def__init__(self):
self.name_list=['zhangsan','zhangsanfeng','zhaoliu','wangwu','wulong','wanda','lisi','liuyang','luoxiaoxiao','linmeimei','luhan','gaohairui','guojing','huangrong','hanhan']
#声明空字典
self.ss_dict={}
deftotal(self):
#for循环遍历列表,取出每一个姓名
fornameinself.name_list:
#取出首字母
s=name[0]
#判断字典中是否有s这个key
ifsnotinself.ss_dict:
#如果没有,根据key将存放name的列表放入字典
#s_list=[]
#s_list.append(name)
#self.ss_dict[s]=s_list
self.ss_dict[s]=[name]
else:
#如果有,根据key取出列表,将这个name添加到列表
s_list=self.ss_dict[s]
s_list.append(name)
print(self.ss_dict)
defadd_person(self):
name=input('请输入姓名:')
ifnamenotinself.name_list:
self.name_list.append(name)
s=name[0]
ifsnotinself.ss_dict:
self.ss_dict[s]=[name]
else:
s_list=self.ss_dict[s]
s_list.append(name)
else:
print('已存在!')
defquery_person(self):
s=input('请输入要查找联系人名字的首字母:')
#s就是要查找的字典的key
ifsnotinself.ss_dict:
print('不存在')
else:
#根据这个key取出字典中对应的值(列表)
s_list=self.ss_dict[s]
forindex,nameinenumerate(s_list):
print('序号:%s姓名:%s'%(index,name))
#forxinrange(0,len(s_list)):
#name=s_list[x]
#print('序号:%s姓名:%s'%(x,name))
returns
defalter_person(self):
s=self.query_person()
index=int(input('请输入要修改联系人的序号:'))
new_name=input('输入更改后的名字(%s):'%self.ss_dict[s][index])
delself.ss_dict[s][index]
s=new_name[0]
ifsnotinself.ss_dict:
self.ss_dict[s]=[new_name]
else:
s_list=self.ss_dict[s]
s_list.append(new_name)
defdelete_person(self):
whilelen(self.ss_dict)=='0':
print('信息为空!')
print('1.根据名字删除')
print('2.全部删除')
print('0.退出')
num=int(input('输入序号:'))
whilenumnotinrange(0,3):
num=int(input('选项不存在,请重输:'))
ifnum==1:
s=self.query_person()
index=int(input('请输入要删除联系人的序号:'))
rs=input('是否真的要删除,(y/n):')
ifrs=='y':
self.ss_dict[s].pop(index)
print('删除成功')
else:
print('取消删除')
elifnum==2:
rs=input('是否真的要删除,(y/n):')
ifrs=='y':
self.ss_dict.clear()
print('删除成功')
else:
print('取消删除')
else:
return
defstart(self):
self.total()
while1:
print('1.添加联系人')
print('2.查询联系人')
print('3.修改联系人')
print('4.删除联系人')
print('0.退出')
num=int(input('输入序号:'))
whilenumnotinrange(0,5):
num=int(input('选项不存在,请重输:'))
ifnum==1:
self.add_person()
elifnum==2:
self.query_person()
elifnum==3:
self.alter_person()
elifnum==4:
self.delete_person()
else:
break
p=PERSON()
p.start()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。