card_main.py
1 import time 2 import card_tool 3 # while True 表示不停的循環 無限循環 4 while True: 5 # 顯示功能菜單 6 card_tool.show_menu() 7 i = input("請輸入您的選擇:") 8 print("您選擇的是【%s】" % i) 9 if i in ["1", "2", "3"]: 10 if i == "1": 11 card_tool.new_card() 12 elif i == "2": 13 card_tool.show_card() 14 elif i == "3": 15 card_tool.search_card() 16 elif i == "0": 17 print("退出系統") 18 time.sleep(2) 19 break 20 else: 21 print("您的輸入有誤,請重新輸入您的選擇") 22 time.sleep(2)
card_tool.py
1 import time 2 # 記錄所有的名片字典 3 card_list = [] 4 5 6 def show_menu(): 7 """ 定義一個菜單函數""" 8 print("*"*50) 9 print("歡迎使用【名片管理系統 V1.0】") 10 print("") 11 print("1.新建名片") 12 print("2.顯示全部") 13 print("3.查詢名片") 14 print("\r") 15 print("0.退出系統") 16 print("*"*50) 17 18 19 def new_card(): 20 21 """新增名片""" 22 print("-"*50) 23 print("新增名片") 24 name_str = input("請輸入姓名:") 25 phone_str = input("請輸入電話:") 26 qq_str = input("請輸入qq號碼:") 27 email_str = input("請輸入郵箱:") 28 card_dict = {"name": name_str, 29 "phone": phone_str, 30 "qq": qq_str, 31 "email": email_str} 32 card_list.append(card_dict) 33 print(card_list) 34 print("添加%s的名片成功" % name_str) 35 time.sleep(2) 36 37 38 def search_card(): 39 """搜索名片""" 40 print("-" * 50) 41 print("搜素名片") 42 find_name = input("請輸入要查找的姓名:") 43 for card_dict in card_list: 44 if card_dict["name"] == find_name: 45 print("姓名\t\t電話\t\tQQ\t\t郵箱") 46 print("="*50) 47 print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], 48 card_dict["phone"], 49 card_dict["qq"], 50 card_dict["email"])) 51 # TODO 處理后面修改的內容 52 deal_card(card_dict) 53 break 54 else: 55 print("抱歉,沒有找到%s" % find_name) 56 time.sleep(1) 57 58 59 def show_card(): 60 61 """顯示名片""" 62 print("-" * 50) 63 print("顯示名片") 64 # 打印表頭 65 if len(card_list) == 0: 66 print("當前沒有記錄任何名片,請使用新增功能添加名片") 67 # return 可以返回一個執行的結果 68 # 下方的代碼不會被執行 69 # 如果 return 后面沒有內容 ,表示返回到調用函數的位置 70 # 並且不符合任何結果 71 return 72 for name in ["姓名", "電話", "qq", "郵箱"]: 73 print(name, end="\t\t") 74 print("") 75 # 打印分割線 76 print("="*50) 77 # 遍歷名片列表 78 for card_dict in card_list: 79 print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], 80 card_dict["phone"], 81 card_dict["qq"], 82 card_dict["email"])) 83 time.sleep(2) 84 85 86 def deal_card(find_dict): 87 action_card = input("請選擇要執行的操作 " 88 "【1】修改 【2】刪除 【0】返回上一級") 89 if action_card == "1": 90 find_dict["name"] = input_card_info(find_dict["name"], "請輸入姓名:") 91 find_dict["phone"] = input_card_info(find_dict["phone"], "請輸入電話號碼:") 92 find_dict["qq"] = input_card_info(find_dict["qq"], "請輸入qq:") 93 find_dict["email"] = input_card_info(find_dict["email"], "請輸入郵箱:") 94 print("修改名片成功") 95 elif action_card == "2": 96 card_list.remove(find_dict) 97 print("刪除名片%s" % find_dict["name"]) 98 99 100 def input_card_info(dict_value, tip_message): 101 """ 輸入名片信息 102 103 :param dict_value: 字典原有的信息 104 :param tip_message: 輸入的提示信息 105 :return: 如果用戶輸入內容就直接返回,否則返回字典中原有的信息 106 """ 107 # 1.提示用戶信息 108 result_str = input(tip_message) 109 # 2.針對用戶輸入的信息進行判斷,如果用戶輸入了內容,直接返回。 110 if len(result_str) > 0: 111 return result_str 112 # 3.如果用戶沒有輸入內容,返回字典原有的值 113 else: 114 return dict_value