首页 > 其他分享 >名片管理系统

名片管理系统

时间:2023-11-04 15:04:03浏览次数:30  
标签:名片 管理系统 dict str print find card

以前学习python时候敲的终端交互功能,分享下


cards_main.py
#! /usr/bin/python3

import cards_tools
#无限循环,由用户主动决定什么时候退出系统!
while True:

    #TODO() 显示功能菜单
    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()
        #查询名片
        elif action_str == "3":
            cards_tools.search_card()

    #0退出系统
    elif action_str == "0":
        print("欢迎再次使用【名片管理系统】")
        break

    #其他内容输入错误,需要提示用户
    else:
        print("您输入的不正确,请重新选择")


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

def show_menu():
    """显示菜单"""
    print("*" * 50)
    print("欢迎使用【名片管理系统】V1.0")
    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():
    """显示所有名片"""
    print("_" * 50)
    print("显示所有名片")

    #判断是否存在名片记录,如果没有,提示用户并且返回
    if len(card_list) == 0 :

        print("当前没有任何的名片记录,请使用新增功能添加名片")
        #return 下方的代码不会被执行
        #可以返回一个函数执行结果
        #如果retur后面没有任何的内容,表示会返回到调用函数的位置
        #并且不返回任何结果
        return

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

    print("")

    #遍历名片列表依次输出字典信息
    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.提示用户要搜索的姓名
    find_name = input("请输入要搜索的姓名:")

    #2.遍历名片的列表,查询要搜索的姓名,如果没有找到,需要提示用户
    for card_dict in card_list:
        if card_dict["name"] == find_name:
            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["phone"],
                                                card_dict["qq"],
                                                card_dict["email"]))

                #TODO 针对找打名片执行修改和删除的操作
                deal_card(card_dict)
            break
    else:
        print("抱歉,没有找到%s" % find_name)

def deal_card(find_dict):
    """处理找到到的名片

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

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

    if action_str == "1":

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

        print("修改名片")
    elif action_str == "2":

        card_list.remove(find_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

标签:名片,管理系统,dict,str,print,find,card
From: https://blog.51cto.com/u_14324899/8182742

相关文章

  • 基于微信小程序的短文写作竞赛管理系统-计算机毕业设计源码+LW文档
    摘 要随着世界经济信息化、全球网络化的到来推动信息线上管理的飞速发展,为短文写作竞赛行业的改革起到关键作用。若想达到安全,快捷的目的,就需要拥有信息化的组织和管理模式,建立一套合理、畅通、高效的短文写作竞赛管理系统小程序。当前的短文写作竞赛管理存在工作效率低下,人员和......
  • 基于小程序的物流管理系统-计算机毕业设计源码+LW文档
    摘 要随着世界经济信息化、全球网络化的到来推动信息线上管理的飞速发展,为物流行业的改革起到关件作用。若想达到安全,快捷的目的,就需要拥有信息化的组织和管理模式,建立一套合理、畅通、高效的物流管理系统。当前的物流系统存在工作效率低下,人员和资源调配不充分的问题,基于信息化......
  • 音乐推荐与管理系统Python+Django网页界面+协同过滤推荐算法
    一、介绍音乐推荐与管理系统。本系统采用Python作为主要开发语言,前端使用HTML、CSS、BootStrap等技术搭建界面平台,后端使用Django框架处理请求,并基于Ajax等技术实现前端与后端的数据通信。在音乐个性推荐功能模块中采用通过Python编写协同过滤推荐算法模块,实现对当前登录用户的个性......
  • 音乐推荐与管理系统Python+Django网页界面+协同过滤推荐算法
    一、介绍音乐推荐与管理系统。本系统采用Python作为主要开发语言,前端使用HTML、CSS、BootStrap等技术搭建界面平台,后端使用Django框架处理请求,并基于Ajax等技术实现前端与后端的数据通信。在音乐个性推荐功能模块中采用通过Python编写协同过滤推荐算法模块,实现对当前登录用户的个......
  • 天沐瑜伽馆管理系统 JAVA开源项目 毕业设计
    一、摘要基于JAVA+Vue+SpringBoot+MySQL的天沐瑜伽馆管理系统,包含了瑜伽课程、课程预约、课程安排、课程评价、瑜伽器械、系统公告模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,天沐瑜伽馆管理系统基于角色......
  • 开源物流管理系统——【3】在线站点
    好消息,在线站点已经搭建完成。在线站点的搭建是为了让更多的朋友有一个直观的在线预览体验,以便提供更多的意见来完善业务流程和模块功能。接下来对在线站点做下基本的介绍:1.站点地址及访问账号:地址:http://wuliu.gardenengineer.club/账号密码:[email protected]......
  • 如何选择微信管理系统?
    1、不用下载安装软件,不越狱不刷机2、不绑定手机或电脑,不对电脑或手机做限制,也不受电脑、手机关闭、关机影响3、能更新迭代,不限制版本4、使用安全登录,保障账号安全的5、不用去独立部署(可以选择)6、有售后服务7、选择节约成本,帮助企业降低运营成本8、不用指定账号总结起来就是方便、稳......
  • 智慧工地管理系统源码,数据进行实时采集分析,危险事件智能预警和联动管控
    以施工现场风险预知和联动预控为目标,将智能AI、传感技术、人像识别、监控、虚拟现实、物联网、5G、大数据、互联网等新一代科技信息技术植入到建筑、机械、人员穿戴设施、场地进出关口等各类设备中,实现工程管理与工程施工现场的整合,并构建成为一个完整的智慧工地管理系统,实现对工地......
  • APK检测管理系统 JAVA开源项目 毕业设计
    https://gf.bilibili.com/item/detail/1104293029为了帮助小白入门Java,博主录制了本项目配套的《项目手把手启动教程》,希望能给同学们带来帮助。一、摘要基于JAVA+Vue+SpringBoot+MySQL的APK检测管理系统,包含了软件档案模块、软件检测模块、软件举报模块、开放平台模块,还包含系统......
  • 基于微信小程序的仓储管理系统_-计算机毕业设计源码+LW文档
    摘 要随着科学研究的不断深入,有关仓储的各种信息量不断成倍增长。面对庞大的信息量,就需要有仓储管理系统来提高管理工作的效率。通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少了管理方面的工作量。 建立仓储管理系统,进一步提高用户对仓储信息的查询。帮助管理......