如何使用Python實現名片管理系統

前言

綜合應用已經學習過的知識點:

  • 變量
  • 流程控制
  • 函數
  • 模塊

系統需求

1.程序啟動,顯示名片管理系統歡迎界面,並顯示功能菜單

**************************************************
歡迎使用【名片管理系統】V1.0

1. 新建名片
2. 顯示全部
3. 查詢名片
0. 退出系統
**************************************************

  • 2.用戶用數字選擇不同的功能
  • 3.根據功能選擇,執行不同的功能
  • 4.用戶名片需要記錄用戶的 姓名電話QQ郵件
  • 5.如果查詢到指定的名片,用戶可以選擇 修改 或者 刪除 名片

步驟

  • 框架搭建
  • 新增名片
  • 顯示所有名片
  • 查詢名片
  • 查詢成功後修改、刪除名片
  • 讓 Python 程序能夠直接運行

cards_main.py

import cards_tools
while True:
    # 顯示功能菜單
    cards_tools.show_menu()
    action_str = input("請您選擇希望執行的操作:\n")
    if action_str in ["1", "2", "3"]:
        # 1. 新建名片
        if action_str == "1":
            cards_tools.new_card()
 
        # 2. 顯示全部
        elif action_str == "2":
            cards_tools.show_all()
 
        # 3. 查詢名片
        elif action_str == "3":
            cards_tools.search_card()

    elif action_str == "0":
        print("歡迎再次使用【名片管理系統】")
        # 在開發時,不希望立即編寫分支內部的代碼
        # 或者這裡不輸出提示語句時,應用到  pass  關鍵字,表示一個占位符,能保證程序代碼的結構正確
        # 程序運行時,pass關鍵字不會執行任何操作
        break
 
    else:
        print("您輸入的不正確,請重新輸入")

cards_tools.py

# 記錄所有名片字典
card_list = []
def show_menu():
    """顯示菜單"""
    print("*" * 50)
    print("迎使用【名片管理系統】V1.0")
    print("1. 新建名片")
    print("2. 顯示全部")
    print("3. 查詢名片")
    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 可以反hi一個函數的執行結果
        # 下方的代碼不會執行
        # 如果return後面沒有任何內容,便是會返回到調用函數的位置,並且不能返回任何結果
        return
 
    # 打印表頭
    for name in ["姓名", "電話", "QQ    ", "郵箱"]:
        print(name, end="\u3000\t\t")
    print("")
 
    # 打印分割線
    print("=" * 50)
 
    # 遍歷名片列表依次輸出字典信息
    for card_dict in card_list:
        print("%s\u3000\t\t%s\u3000\t\t%s\u3000\t\t%s\u3000\t\t" % (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("姓名\u3000\t\t電話\u3000\t\tQQ    \u3000\t\t郵箱")
            print("%s\u3000\t\t%s\u3000\t\t%s\u3000\t\t%s\u3000\t\t" % (card_dict["name"],
                                                                        card_dict["phone"],
                                                                        card_dict["qq"],
                                                                        card_dict["email"]))
 
            # 針對找到的字典信息進行修改和刪除
            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(dic_value, tip_message):
    """輸入名片信息
    :param dic_value:字典中原有的值
    :param tip_message:輸入的提示文字
    :return:如果用戶輸入瞭內容,就返回內容,否則返回字典中原有的值
    """
    # 1.提示用戶輸入內容
    result_str = input(tip_message)
 
    # 2.針對用戶輸入進行判斷,如果用戶輸入瞭內容,直接返回結果
    if len(result_str) > 0:
        return result_str
 
    # 3.如果用戶沒有輸入內容,返回'字符串中原有的值‘
    else:
        return dic_value

到此這篇關於如何使用Python實現名片管理系統的文章就介紹到這瞭,更多相關Python名片管理系統內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: