python实现手机通讯录搜索功能

本文实例为大家分享了python通过输入联系人首字母查询联系人的具体代码,供大家参考,具体内容如下

# -*- coding:utf-8 -*-

# 练习2:

# 模拟手机通讯录搜索功能

class PERSON(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 = {}

def total(self):

#for循环遍历列表,取出每一个姓名

for name in self.name_list:

#取出首字母

s =name[0]

#判断字典中是否有s这个key

if s not in self.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)

def add_person(self):

name = input('请输入姓名:')

if name not in self.name_list:

self.name_list.append(name)

s = name[0]

if s not in self.ss_dict:

self.ss_dict[s] = [name]

else:

s_list = self.ss_dict[s]

s_list.append(name)

else:

print('已存在!')

def query_person(self):

s = input('请输入要查找联系人名字的首字母:')

# s就是要查找的字典的key

if s not in self.ss_dict:

print('不存在')

else:

# 根据这个key取出字典中对应的值(列表)

s_list = self.ss_dict[s]

for index,name in enumerate(s_list):

print('序号:%s 姓名:%s' % (index,name))

# for x in range(0,len(s_list)):

# name = s_list[x]

# print('序号:%s 姓名:%s'%(x,name))

return s

def alter_person(self):

s= self.query_person()

index = int(input('请输入要修改联系人的序号:'))

new_name = input('输入更改后的名字(%s):'%self.ss_dict[s][index])

del self.ss_dict[s][index]

s = new_name[0]

if s not in self.ss_dict:

self.ss_dict[s] = [new_name]

else:

s_list = self.ss_dict[s]

s_list.append(new_name)

def delete_person(self):

while len(self.ss_dict) == '0':

print('信息为空!')

print('1.根据名字删除')

print('2.全部删除')

print('0.退出')

num = int(input('输入序号:'))

while num not in range(0,3 ):

num = int(input('选项不存在,请重输:'))

if num == 1:

s = self.query_person()

index = int(input('请输入要删除联系人的序号:'))

rs = input('是否真的要删除,(y/n):')

if rs == 'y':

self.ss_dict[s].pop(index)

print('删除成功')

else:

print('取消删除')

elif num == 2:

rs = input('是否真的要删除,(y/n):')

if rs == 'y':

self.ss_dict.clear()

print('删除成功')

else:

print('取消删除')

else:

return

def start(self):

self.total()

while 1:

print('1.添加联系人')

print('2.查询联系人')

print('3.修改联系人')

print('4.删除联系人')

print('0.退出')

num = int(input('输入序号:'))

while num not in range(0,5):

num = int(input('选项不存在,请重输:'))

if num == 1:

self.add_person()

elif num == 2:

self.query_person()

elif num == 3:

self.alter_person()

elif num == 4:

self.delete_person()

else:

break

p = PERSON()

p.start()

以上是 python实现手机通讯录搜索功能 的全部内容, 来源链接: utcz.com/z/319268.html

回到顶部