名片管理系統是一個檢驗Python初學者入門的實戰小專案,它覆蓋了Python程式設計的一些基礎知識,其中包括有模組、輸入/輸出、while語句、if…elif…else語句、for迴圈語句、佔位符/製表符、列表和字典等知識點。
功能描述
1. 程式啟動,顯示名片管理系統歡迎介面,並顯示功能選單,如下:
2. 使用者選擇不同數字進入與數字對應的功能
3. 根據功能選擇,執行不同的功能
4. 名片需要記錄使用者的姓名、電話、QQ、郵件
5. 查詢指定的名片,使用者可以修改和刪除名片
問題分析
準備兩個檔案,一個是cards_main.py儲存主程式功能程式碼,它是程式的入口,另一個是cards_tools.py儲存所有名片功能函式,對名片進行新增、顯示、查詢、修改、刪除等功能操作。
主程式:cards_main.py
from card_manage_system import cards_tools while True: cards_tools.show_menu() action = input("請輸入操作功能:") print("你輸入的操作是:%s"%action) if action in ["1","2","3"]: if action == "1": cards_tools.new_card() elif action == "2": cards_tools.show_all() elif action == "3": cards_tools.search_card() elif action == "0": print("退出系統,歡迎下次使用名片管理系統") break else: print("輸入錯誤,請重新輸入")
名片功能函式:cards_tools.py
此模組包含show_menu()、new_card()、show_all()、search_card()、deal_card()、input_card_info()等六個不同的功能函式。以下是原始碼:
card_list = [] def show_menu(): '''顯示選單''' print("*"*60) print("歡迎使用【名片管理系統】V1.0") print("1. 新建名片") print("2. 顯示全部") print("3. 查詢名片") print("0. 退出系統") print("*"*60) def new_card(): '''新建名片''' # 1.提示使用者輸入名片資訊 name = input("請輸入你的姓名:") number = int(input("請輸入你的手機號碼:")) QQnumber = int(input("請輸入你的QQ號碼:")) email = input("請輸入你的郵箱;") # 2.使用使用者輸入的資訊建立一個名片字典 card_dict = {"name":name,"phonenumber":number,"QQnumber":QQnumber,"email":email} # 3.將名片字典新增到列表中 card_list.append(card_dict) # 4.提示使用者名稱片新增成功 print("新增%s的名片成功"%name) def show_all(): '''顯示全部名片 ''' print('*'*60) print('顯示所有名片') # 判斷列表中是否存在名片,如果沒有,提示使用者並返回 if len(card_list) == 0: print("名片系統中沒有名片") return # 列印表頭 print("姓名\t\t手機號碼\t\tQQ號碼\t\t郵箱") # 遍歷名片列表依次輸出字典資訊 for card_dict in card_list: print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], card_dict["phonenumber"], card_dict["QQnumber"], card_dict["email"])) def search_card(): '''查詢名片''' # 1.提示使用者輸入要搜尋的姓名 find_name = input("請輸入你要查詢的名片:") # 2.遍歷名片列表,查詢要搜尋的姓名,如果沒有搜尋到,提示給使用者 for card_dict in card_list: if card_dict["name"] == find_name: for name in ["姓名","手機號碼","QQ號碼","郵箱"]: print(name,end="\t\t") print("") print("-"*60) print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], card_dict["phonenumber"], card_dict["QQnumber"], card_dict["email"])) print("-"*60) deal_card(card_dict) break else: print("沒有找到%s的名片"%find_name) def deal_card(find_dict): '''操作搜尋到的名片''' print(find_dict) action_str = input("請選擇要執行的操作【1】修改【2】刪除") # 替換已經存在的鍵值對 if action_str == "1": find_dict["name"] = input_card_info(find_dict['name'],'姓名:') find_dict["phonenumber"] = input_card_info(find_dict['phonenumber'],'電話:') find_dict["QQnumber"] = input_card_info(find_dict['QQnumber'],'QQ:') find_dict["email"] = input_card_info(find_dict['email'],'郵箱:') print("%s的名片修改成功"%find_dict) elif action_str == "2": card_list.remove(find_dict) print("刪除成功") def input_card_info(dict_value,tip_message): # 1.提示使用者出入內容 result_str = input(tip_message) # 2.如果使用者輸入內容,則返回輸入值,否則返回字典值 if len(result_str) > 0: return result_str else: return dict_value