cards_main.py
#! /usr/bin/python3 # 增加shebang標記,再給文件增加可執行權限,就可以直接通過文件名執行 import cards_tool # 無限循環,由用戶主動決定什么時候退出 while True: # 顯示功能菜單 cards_tool.show_menu() action_str = input("請選擇希望執行的操作:") print("您選擇的操作是【%s】" % action_str) # 使用in判斷,避免復雜的邏輯表達式 if action_str in ["1", "2", "3"]: # 新增名片 if action_str == "1": cards_tool.new_card() # 顯示全部 elif action_str == "2": cards_tool.show_all() # 查詢名片 elif action_str == "3": cards_tool.search_card() elif action_str == "0": print("【退出程序 謝謝使用】") break # 如果在開發程序時,不希望立即編寫分支內部的代碼 # 可以使用pass關鍵字,表示一個占位符,保證程序的代碼結構正確 # pass else: print("您輸入的不正確,請重新輸入")
cards_tool.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("新增名片") print("請輸入名片信息:") name = input("姓名:") phone = input("電話:") qq = input("qq:") email = input("郵箱:") card_dict = {"name": name, "phone": phone, "qq": qq, "email": email} card_list.append(card_dict) print("用戶%s添加成功!" % name) def show_all(): """顯示全部""" print("-" * 50) print("顯示全部") if len(card_list) == 0: print("當前沒有記錄,請使用新增功能") return # 打印表頭 for name in ["姓名", "電話", "QQ", "郵箱"]: print(name, end="\t\t") print("") for card_dict in card_list: print("%s\t\t%s\t\t%s\t\t%s\t\t" % (card_dict["name"], card_dict["phone"], card_dict["qq"], card_dict["email"])) def search_card(): """搜索名片""" print("-" * 50) print("搜索名片") find_name = input("請輸入要搜索的姓名:") for card_dict in card_list: if card_dict["name"] == find_name: print("找到%s" % find_name) print("姓名\t\t電話\t\tQQ\t\t郵箱\t\t") print("%s\t\t%s\t\t%s\t\t%s\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: 名片信息 :return: 無 """ action_str = input("請選擇要執行的操作:" "1修改/2刪除/0返回主菜單 ") if action_str == "1": find_dict["name"] = input_info(find_dict["name"], "姓名:") find_dict["phone"] = input_info(find_dict["phone"], "電話:") find_dict["qq"] = input_info(find_dict["qq"], "qq:") find_dict["email"] = input_info(find_dict["email"], "email:") print("修改名片完成!") elif action_str == "2": card_list.remove(find_dict) print("刪除名片成功!") def input_info(dict_value, tip_message): """ 輸入名片信息 :param dict_value: 字典中原有的值 :param tip_message: 提示信息 :return: 如果用戶輸入了內容,就返回輸入的值;如果用戶沒有輸入內容,就返回原來的值 """ result_str = input(tip_message) if len(result_str) > 0: return result_str else: return dict_value