Python练习--名片管理系统

名片管理系统

  • 主要涵盖知识点:
    1. 列表可存放数据的样式
    2. 对于字典的用法, 怎样添加数据
    3. 格式化点位符
    4. if 判断分支流程的走向
    5. 函数分模块的意识
# 定义一个空列表, 里面存放所有的个人名片
card_list = []


def show_menu():
    """显示菜单"""
    print('*' * 50)
    print('欢迎使用[名片管理系统]')
    print('')
    print('1. 新增名片')
    print('2. 删除名片')
    print('3. 修改名片')
    print('4. 搜索名片')
    print('5. 显示全部')
    print('0. 退出系统')
    print('*' * 50)


def new_card():
    """新增名片"""
    print('*' * 50)
    print('新增名片')
    card_dict = {}  # 创建一个新字典

    name = input('请输入姓名: ')
    mobile = input('请输入电话: ')
    qq = input('请输入QQ: ')
    email = input('请输入邮箱: ')

    # 把输入的内容以键值对的方式存入字典
    card_dict['name'] = name
    card_dict['mobile'] = mobile
    card_dict['QQ'] = qq
    card_dict['email'] = email

    # 再把单个名片放入到一个大列表里面去, 所有的名片都在里面
    card_list.append(card_dict)
    print(card_list)
    print('添加%s的名片成功' % name)


def del_dict():
    """删除名片"""
    print('*' * 50)
    print('删除名片')
    find_name = input('请问你想删除哪一个名片: ')

    # 如果列表里面根本没内容, 就找不到东西可以删除
    if len(card_list) < 1:
        print('sorry, 没有找到%s' % find_name)
        return

    # 如果有内容, 再去根据用户输入的名字查找删除
    else:
        for card_dict in card_list:
            if card_dict['name'] == find_name:
                card_list.remove(card_dict)
                print('删除%s名片成功' % find_name)
                break

        # 如果用户输入错误则提示找不到
        else:
            print('sorry, 没有找到%s' % find_name)


def modify_dict():
    """修改名片"""
    print('*' * 50)
    print('修改名片')
    find_name = input('请问你想修改哪一个名片: ')

    # 如果列表里面根本没内容, 就找不到东西可以修改
    if len(card_list) < 1:
        print('sorry, 没有找到%s' % find_name)
        return

    # 如果有内容, 再去根据用户输入的名字查找修改
    else:
        for card_dict in card_list:
            if card_dict['name'] == find_name:
                name = input('请输入姓名: ')
                mobile = input('请输入电话: ')
                QQ = input('请输入QQ: ')
                email = input('请输入邮箱: ')

                card_dict['name'] = name
                card_dict['mobile'] = mobile
                card_dict['QQ'] = QQ
                card_dict['email'] = email
                print('修改%s成功' % card_dict['name'])
                break

        # 如果用户输入错误则提示找不到
        else:
            print('sorry, 没有找到%s' % find_name)


def search_card():
    """查询个人名片"""
    print('*' * 50)
    print('搜索名片')

    find_name = input('请输入你要查找的姓名: ')

    # 如果列表里面根本没内容, 就查询不到东西
    if len(card_list) < 1:
        print('sorry, 没有找到%s' % find_name)
        return

    # 如果有内容, 再去根据用户输入的名字查找
    else:
        for card_dict in card_list:
            if card_dict['name'] == find_name:
                print('姓名\t\t电话\t\tQQ\t\t邮箱')
                print('=' * 50)

                print('%s\t\t%s\t\t%s\t\t%s' % (
                    card_dict['name'], card_dict['mobile'], card_dict['QQ'], card_dict['email']))
                break

        # 如果用户输入错误则提示找不到
        else:
            print('sorry, 没有找到%s' % find_name)


def show_all():
    """显示所有的名片"""
    print('*' * 50)
    print('显示所有的名片')

    # 如果列表里面根本没内容, 就查询不到东西
    if len(card_list) < 1:
        print('当前还没有任何名片记录, 请使用新增功能添加名片')
        return

    # \t是制表符, 加了两个\t
    print('姓名\t\t电话\t\tQQ\t\t邮箱')
    print('=' * 50)
    for card_dict in card_list:
        print('%s\t\t%s\t\t%s\t\t%s' % (card_dict['name'], card_dict['mobile'], card_dict['QQ'], card_dict['email']))


def main():
    """这里是主函数, 整个程序的主要函数入口在这里, 由这里走向不同的分支方向"""
    while True:
        action_str = input("请选择希望执行的操作: ")
        print("你选择的操作是 %s" % action_str)
        if action_str in ["1", "2", "3", '4', '5']:
            if action_str == "1":
                new_card()
            elif action_str == "2":
                del_dict()
            elif action_str == "3":
                modify_dict()
            elif action_str == '4':
                search_card()
            else:
                show_all()

        # 0退出系统
        elif action_str == "0":
            print("欢迎再次使用【名片管理系统】:")
            break
        else:
            print("输入错误,请重新输入:")


if __name__ == '__main__':
    # 欢迎光临的页面
    show_menu()
    # 找到主要函数的入口
    main()

发布了21 篇原创文章 · 获赞 34 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44000328/article/details/90439049