Python_通讯录

第一个通讯录

list = ['zhangsan', 'lisi','lian','amao', 'agou', 'zhangsi', 'liliu', 'auto', 'hao', 'et', 'haha']



while True:
    # 键为首字母如a,值为后面的名字如ab,保存在这个字典中,上述3的形式
    data = {}
    for i in list:
        # 得到联系人的首字母如ab中的a
        a = i[0]
        if a in data:
            # 如果data字典中存在键,如data‘a’字典{}中的这个键,把这个键对应的list列表[]获取出来
            x = data[a]
            # 则新增键的值
            x.append(i)
        else:
            # 字典中不存在这个键时,以a为键,i为值如{'a':['ab','ac']}
            data[a] = [i]



    while True:
        z=input("输入查询的单词首字母:")
        #data里面输入的键如'a'
        if z in data:
            for i in data[z]:
                print(i)
        else:
            print("没有此人")

 第二个有增删改查的通讯录

# 模拟手机通讯录搜索功能
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()

猜你喜欢

转载自blog.csdn.net/qq_42431398/article/details/85859014
今日推荐