# 简易手机通讯录

"""
介绍:
    1、通讯录是记录联系人姓名和联系方式的名录,手机通讯录是最常见的通讯录之一,人们可以在通讯录中通过姓名查看
    相关联系人的联系方式:手机号、邮箱、地址等信息,也可以在通讯录中新增联系人、修改联系人、删除联系人信息。

知识点:
    1、字典的使用:创建、添加、修改、删除、遍历
    2、循环语句:while、for
    3、判断语句:if、elif、else
    4、跳转语句:break、continue
    4、旗帜使用

不足(待改善):
    1、在查看联系人时,使用了制表符'\t',由于每个联系人的信息都不是相同的字符数,甚至空字符,
    所以在遍历打印时没有打印整齐,有待改善。
    2、此程序没有太强的可读性,可以添加许多提示语,完善程序,例如:已删除成功、已添加成功等......
    3、细心的小伙伴都会注意到,此程序是不断的换行打印,很影响观感,可以尝试改为静态页面,在原基础上刷新。
    4、此程序的通讯录是暂时暂存在字典中的,再次运行程序通讯录是空的,可以尝试长久保存起来。
"""


# 定义一个字典变量,用于存储好友联系方式
address_list = dict()

# 定义一个字符串变量
message = '请输入编号:'

while True:

    # 通讯录界面打印
    print('=====欢迎进入通讯录=====')
    print('1.添加联系人\t2.查看通讯录')
    print('3.删除联系人\t4.修改联系人')
    print('5.查找联系人\t0.退出')

    # 选择菜单功能
    print(message, end='')
    num = input()

    # 添加联系人
    if num == '1':
        # 输入个人信息
        name = input('请输入姓名:')
        phone = input('请输入手机号:')
        e_mail = input('请输入邮箱:')
        addr = input('请输入地址:')

        # 存入字典
        address_list[name] = [phone, e_mail, addr]

    # 查看通讯录
    elif num == '2':

        flag_output = 0  # 打印联系人旗帜

        # 遍历字典元素
        for i in address_list:
            print('姓名:{}\t手机号:{}\t邮箱:{}\t地址:{}' .format(i, address_list[i][0], address_list[i][1], address_list[i][2]))
            flag_output = 1             # 打印联系人旗帜

        # 判断是否打印通讯录联系人
        if flag_output != 1:            # 等价于flag_output == 0
            print('通讯录暂无联系人!')

    # 删除联系人
    elif num == '3':
        name = input('请输入需要删除的联系人姓名:')
        address_list.pop(name)                  # 删除字典元素

    # 修改联系人
    elif num == '4':

        flag_alter = 0      # 修改通讯录旗帜

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

        # 遍历查找此人
        for i in address_list:

            # 判断通讯录是否有此人
            if i == name:
                # 重新输入个人信息
                name1 = input('请输入新的姓名:')
                phone1 = input('请输入新的手机号:')
                e_mail1 = input('请输入新的邮箱:')
                addr1 = input('请输入新的地址:')

                # 判断是否有修改联系人姓名
                if name != name1:
                    address_list.pop(name)  # 删除字典元素

                # 重新存入字典(键相同,直接覆盖原有信息)
                address_list[name1] = [phone1, e_mail1, addr1]
                flag_alter = 1      # 修改通讯录旗帜
                break

        # 判断是否修改通讯录联系人
        if flag_alter == 0:
            print('此人:{},通讯录不存在!'.format(name))

    # 查找联系人
    elif num == '5':

        flag_output = 0     # 打印联系人旗帜

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

        # 遍历查找此人
        for i in address_list:
            if i == name:
                print('姓名:{}\t手机号:{}\t邮箱:{}\t地址:{}' .format(name, address_list[name][0], address_list[name][1], address_list[name][2]))
                flag_output = 1     # 打印联系人旗帜
                break

        # 判断是否打印通讯录联系人
        if flag_output != 1:        # 等价于flag_output == 0
            print('此人:{},通讯录不存在!'.format(name))

    # 退出
    elif num == '0':
        print(' =====已退出通讯录=====')
        break

    # 其他
    else:
        print('输入有误!!!')
        message = '请重新输入编号:'
        continue

    message = '请输入编号:'


运行结果:

创作日期:2022/5/15

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐