基于python编写一个名片管理系统

我们小做一个名片管理系统,首先要确定系统的框架,要实现增删改查的功能,可以定义 1:增加 2:查看 3:查询(并修改)4:退出系统,我们确定了这几项功能,然后我们就可以编写主程序了。

功能列表
1 新建一个名片
2 查看所有名片
3 查询和修改名片
4 退出程序
  1. while循环用来保持程序持续运行,直到输入“0”退出程序
  2. 使用dict字典来存储每一个名片的姓名、电话、qq、邮箱
  3. 使用list列表保存多条字典信息(名片信息)

话不多说直接上程序:

说明:这里的import引入的是我自己封装功能函数 用来实现增删改查的功能,你可以复制下一段代码取名toos 并放入python 文件夹中即可调用。

在这里插入图片描述

#这里的import引入的是我自己写的功能函数 用来实现增删改查的功能
import toos
while True:
    toos.show_menu()
    action_str=input("请选择您希望执行的操作:")
    print("您选择的是 %s"%action_str)
    if action_str in ["1","2","3"]:
        if action_str=="1":
            toos.new_card()
        elif action_str=="2":
            toos.show_all()
        elif action_str=="3":
            toos.search()
    elif action_str =="0":
        print("欢迎再次使用【名片管理系统】")
        break
        #如果在开发程序时,不想立刻写出分支内部的代码,
        # 这个时候可以使用pass关键字,pass关键字是一个占位符,
        # 他可以保证代码结构正确,程序运行时pass不执行任何操作。
    else:
        print("您输入的不正确,请重新选择")

功能函数如下:

 #记录所有名片字典
card_list=[]
def show_menu():
    print("*******************")
    print("欢迎进入名片管理系统")
    print("1.新建名片")
    print("2.显示名片")
    print("3.查询名片")
    print("0.退出程序")
    print("********************")
def new_card():
    """新增名片"""
    #1.提示用户输入名片详细信息
    name_str=input("请输入用户姓名")
    phone_str=input("请输入电话")
    qq_str=input("请输入QQ号码")
    emile_str=input("请输入邮箱")
    #2.把用户输入的名片信息建立一个字典
    card_dict = {"name": name_str, "phone": phone_str, "qq": qq_str, "Emile": emile_str}
    #3.将字典信息存入到名片列表中
    card_list.append(card_dict)
    #4.提示用户添加成功
    print("添加成功")
def show_all():
    print("-" * 50)
    """显示所有名片"""
    #判断是否有名片,如果没有提示用户输入名片
    if len(card_list)==0:
        print("当前没有任何记录请添加名片")
        #return 可以返回一个函数返回结果同时下方的代码不会再执行
        return
    #打印表头
    for name in ["姓名","电话","QQ","邮箱"]:
        print(name,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["Emile"]))
    print("显示名片")
def search():
    """搜索名片"""
    find_name=input("请输入您要检索的名片姓名")
    for card_dist in card_list:
        if  card_dist["name"] == find_name:
            print("姓名\t\t电话\t\tQQ\t\t邮箱")
            print("="*50)
            print("%s\t\t%s\t\t%s\t\t%s"%(card_dist["name"],card_dist["phone"],card_dist["qq"],card_dist["Emile"]))
            # TODO针对找到的字典进执行修改和删除的操作
            deal_card(card_dist)
            break
        else:
            print("对不起没找到")
def deal_card(find_dict):
    print("-"*50)
    action_str=input("请选择要执行的操作:1/删除 2/修改 0/返回主菜单")
    if action_str=="1":
        card_list.remove(find_dict)
        print("删除名片成功")
    elif action_str=="2":
        find_dict["name"]=card_input_info(find_dict["name"],"请输入修改后的姓名:")
        find_dict["phone"]=card_input_info(find_dict["phone"],"请输入修改后的电话")
        find_dict["qq"]=card_input_info(find_dict["qq"],"请输入修改后的QQ号码")
        find_dict["Emile"]=card_input_info(find_dict["Emile"],"请输入修改后的邮箱")
        print("修改名片成功")
    elif action_str=="0":
        print("返回主菜单")
def card_input_info(dict_value,tip_massage):
    """

    :param dict_value: 字典中原有的值
    :param tip_massage:输入的提示文字
    :return:如果用户输入了内容,就返回内容,如果没有内容,就返回字典中原有的值
    """
    #提示用户输入内容
    result_str=input(tip_massage)
    #针对用户输入进行判断,如果输入了内容,直接返回结果
    if len(result_str)>0:
        return result_str
    #如果用户没有输入内容,则返回字典中原有的值
    else:
        return dict_value



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章