Python 程序开发案例教程 第5章 实例2:手机通讯录(微调版)

题目要求:增删改查退

# PhoneAssressList

person_info = []

print("=" * 20)

print('欢迎使用通讯录:')

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

print("2.查看通讯录")

print("3.删除联系人")

print("4.修改联系人")

print("5.查找联系人")

print("输入 # 返回功能页")

print("输入 * 退出系统")

print("=" * 20)

while True:

    fun_num = input('\n请输入功能序号:')

    if fun_num == '1':

        flag = input('请输入所想添加的个数:')

        if flag == '#':
            
            continue

        for i in range(int(flag)):
            
            per_dict = {}

            print('--' * 15)

            per_name = input('请输入联系人的姓名:')
            
            phone_num = input('请输入联系人的手机号:')

            per_email = input('请输入联系人的邮箱:')

            per_address = input('请输入联系人的地址:')


            # 判断输入的是否为空

            if per_name.strip() == '' or phone_num.strip() == '' or per_email.strip() == '' or per_address.strip() == '':

                print('请输入正确信息')

                continue

            else:

                per_dict.update({'姓名': per_name, '手机号': phone_num, '电子邮箱': per_email, '联系地址': per_address})

                person_info.append(per_dict)  # 保存到列表中

                print('\n保存成功')

                print('--' * 15)

    elif fun_num == '2':

        print('--*' * 6)

        if len(person_info) == 0:

            print('通讯录无信息')

            print('--*' * 6)

        for i in person_info:

            for title, info in i.items():

                print(title + ':' + info)

            print('--*' * 6)

    elif fun_num == '3':  # 删除

        leng = len(person_info)

        print('***' * 6)

        if len(person_info) != 0:

            del_name = input('请输入要删除的联系人姓名:')

            if del_name.strip() == '#':  # 返回
            
                continue

            # 判断输入的是否为空

            if del_name.strip() == '':

                print('请输入正确信息')

                print('***' * 6)

                continue

            for i in person_info:

                leng -= 1

                if del_name in i.values():

                    person_info.remove(i)

                    print(f'删除联系人 {del_name} 成功')

                if leng == 0:
                    
                    print('该联系人不在通讯录中')

            print('***' * 6)

        else:

            print('通讯录无信息')

            print('***' * 6)

    elif fun_num == '4':  # 修改

        print('-*' * 15)

        if len(person_info) != 0:

            modi_info = input('请输入要修改的联系人姓名:')

            if modi_info.strip() == '#':
            
                continue

            # 判断输入的是否为空

            if modi_info.strip() == '':

                print('请输入正确信息')

                print('-*' * 15)

                continue

            for i in person_info:

                if modi_info in i.values():

                    # 获取所需字典在列表中的索引位置

                    index_num = person_info.index(i)

                    dict_cur_perinfo = person_info[index_num]

                    # 打印表

                    for title, info in dict_cur_perinfo.items():

                        print(title + ':' + info)

                    modi_name = input('请输入新的姓名:')

                    modi_phone = input('请输入新的手机号:')

                    modi_email = input('请输入新的邮箱:')

                    modi_address = input('请输入新的地址:')

                    dict_cur_perinfo.update(姓名= modi_name)

                    dict_cur_perinfo.update(手机号= modi_phone)

                    dict_cur_perinfo.update(电子邮箱= modi_email)

                    dict_cur_perinfo.update(联系地址= modi_address)

                    print('修改成功')

                    print('-*' * 15)

        else:

            print('通讯录无信息')

            print('-*' * 15)
            
    elif fun_num == '5':  # 查找

        print('_-' * 15)

        if len(person_info) != 0:

            query_name = input('请输入要查找的联系人姓名:')

            if query_name.strip() == '#':
            
                continue

            # 判断输入的是否为空

            if query_name.strip() == '':

                print('请输入正确信息')

                print('_-' * 15)

                continue

            for i in person_info:

                if query_name in i.values():

                    index_num = person_info.index(i)

                    for title, info in person_info[index_num].items():

                        print(title + ':' + info)

                    break

            else:

                print('该联系人不在通讯录中')

                print('_-' * 15)

        else:

            print('通讯录无信息')

            print('_-' * 15)

    elif fun_num == '*':  # 退出

        print('已退出')

        break

    else:
        print('\n!!!请输入正确功能!!!\n')

        continue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值