python基础学习--综合应用--名片管理系统


综合应用–名片管理系统


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

建立工程:02-名片管理系统,建立两个 .py 文件:card_main.py 和 card_tools.py
在这里插入图片描述
card_main.py

import cards_tools

# 无限循环,由用户决定什么时候退出循环
while True:

    #  显示功能菜单
    cards_tools.show_menu()

    action_str = input('请选择希望执行的操作:')
    print('您选择的操作是【%s】'% action_str)
    # 1,2,3 针对名片操作
    if action_str in ['1','2','3']:

        # 新增名片
        if action_str == '1':
            cards_tools.new_card()
        # 显示全部
        elif action_str == '2':
            cards_tools.show_all_card()
        #查询名片
        elif action_str == '3':
            cards_tools.search_card()
        pass
    # 0 退出系统
    elif action_str == '0':
        print('欢迎再次使用名片管理系统')
        break
    # 其他内容输入错误,提醒用户
    else:
        print('您输入不正确,请重新选择。')


card_tools.py

# 记录所有的名片字典
card_list = []

def show_menu():
    ''' 显示菜单'''
    print('*' * 50)
    print('欢迎使用【名片管理系统】')
    print('')
    print('1. 新增名片')
    print('2. 显示全部')
    print('3. 搜索名片')
    print('')
    print('0. 退出系统')
    print('*' * 50)


def new_card():
    ''' 新增名片'''
    print('-' * 50)
    print('新增名片:')
    # 1. 提示用户输入名片的详细信息
    name_str = input('请输入姓名:')
    phone_str = input('请输入电话号码:')
    qq_str= input('请输入qq号码:')
    email_str = input('请输入邮箱号:')

    # 2. 使用用户输入的信息建立一个名片字典
    card_dict = {'name':name_str,
                 'phone':phone_str,
                 'qq':qq_str,
                 'email':email_str}

    # 3. 将名片字典添加到列表中
    card_list.append(card_dict)
    print(card_list)

    # 4. 提示用户添加成功
    print('用户 %s 的信息添加成功' % name_str)


def show_all_card():
    ''' 显示全部'''
    print('-' * 50)
    print('显示全部名片:')

    # 判断是否存在名片记录,如果没有,提示用户并且返回
    if len(card_list) == 0:
        print('当前没有名片记录,请先添加名片。')
       # return 表示下方代码不会被执行
        return

    # 打印表头
    for title in ['姓名','电话','QQ','邮箱']:
        print(title, end='\t\t')
    print('')

    # 打印分隔符
    print('=' * 50)

    #遍历名片列表一次输出字典信息
    for card_dict in card_list:
        print('%s\t\t%s\t\t%s\t\t%s'%(card_dict['name'],
                                      card_dict['phone'],
                                      card_dict['qq'],
                                      card_dict['email']))


def search_card():
    ''' 搜索名片'''
   
    print('-' * 50)
    print('搜索名片:')

    # 1. 提示用户输入搜索的姓名
    fine_name = input('请输入要搜索的姓名:')

    # 2. 遍历名片列表,查询要搜索的姓名,如果没有找到,需要提示用户
    for card_dict in card_list:

        if card_dict['name'] == fine_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['phone'],
                                            card_dict['qq'],
                                            card_dict['email']))


            # 针对找到的名片进行修改和删除的操作
            deal_card(card_dict)

            break
    else:
        print('抱歉,没有找到 %s 的名片' % fine_name)


def deal_card(find_card_dict):
    """ 针对找到的名片进行修改和删除的操作

    :param find_card_dict: 查找到的名片
    """
   
    print(find_card_dict)

    action_str = input('请选择要执行的操作: '
                       '[1] 修改  '
                       '[2] 删除  '
                       '[0] 返回上级菜单')

    if action_str == '1':

        find_card_dict['name'] = input_card_info(find_card_dict['name'],'姓名:')
        find_card_dict['phone'] = input_card_info(find_card_dict['phone'], '电话:')
        find_card_dict['qq'] = input_card_info(find_card_dict['qq'], 'QQ:')
        find_card_dict['email'] = input_card_info(find_card_dict['email'],'邮箱:')

        print('修改名片成功')

    elif action_str == '2':

        card_list.remove(find_card_dict)

        print('删除名片成功')


def input_card_info(dict_value, tip_message):
    """ 输入名片信息

    :param dict_value: 字典中原有的名片信息值
    :param tip_message: 输入的文字
    :return:如果用户输入内容,就返回内容,否则返回字典中原有的值
    """
    # 1.提示用户输入内容
    result_str = input(tip_message)

    # 2. 针对用户的输入进行判断,如果用户输入内容。直接返回结果
    if len(result_str) > 0:
        return result_str

    # 3. 如果用户没有输入内容,返回字典中的值
    else:
        return dict_value

猜你喜欢

转载自blog.csdn.net/sundanping_123/article/details/89082815
今日推荐