基於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



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