綜合應用已經學習過的知識點:python
開發 名片管理系統bash
************************************************** 歡迎使用【名片管理系統】V1.0 1. 新建名片 2. 顯示所有 3. 查詢名片 0. 退出系統 **************************************************
目標app
cards_main.py
保存 主程序功能代碼
main
這個文件啓動cards_tools.py
保存 全部名片功能函數
cards_main
中添加一個 無限循環while True: # TODO(小明) 顯示系統菜單 action = input("請選擇操做功能:") print("您選擇的操做是:%s" % action) # 根據用戶輸入決定後續的操做 if action in ["1", "2", "3"]: pass elif action == "0": print("歡迎再次使用【名片管理系統】") break else: print("輸入錯誤,請從新輸入")
if action in ["1", "2", "3"]:
if action == "1" or action == "2" or action == "3":
in
針對 列表 判斷,避免使用 or
拼接複雜的邏輯條件int
轉換用戶輸入,能夠避免 一旦用戶輸入的不是數字,致使程序運行出錯pass
就是一個空語句,不作任何事情,通常用作佔位語句#
後跟上 TODO
,用於標記須要去作的工做# TODO(做者/郵件) 顯示系統菜單
cards_tools
中增長四個新函數def show_menu(): """顯示菜單 """ pass def new_card(): """新建名片 """ print("-" * 50) print("功能:新建名片") def show_all(): """顯示所有 """ print("-" * 50) print("功能:顯示所有") def search_card(): """搜索名片 """ print("-" * 50) print("功能:搜索名片")
cards_main.py
中使用 import
導入 cards_tools
模塊import cards_tools
while
循環的代碼以下: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_main
中的全部代碼所有開發完畢!框架
show_menu
函數def show_menu(): """顯示菜單 """ print("*" * 50) print("歡迎使用【菜單管理系統】V1.0") print("") print("1. 新建名片") print("2. 顯示所有") print("3. 查詢名片") print("") print("0. 退出系統") print("*" * 50)
程序就是用來處理數據的,而變量就是用來存儲數據的函數
cards_tools
文件的頂部增長一個 列表變量# 全部名片記錄的列表 card_list = []
注意學習
def new_card(): """新建名片 """ print("-" * 50) print("功能:新建名片") # 1. 提示用戶輸入名片信息 name = input("請輸入姓名:") phone = input("請輸入電話:") qq = input("請輸入 QQ 號碼:") email = input("請輸入郵箱:") # 2. 將用戶信息保存到一個字典 card_dict = {"name": name, "phone": phone, "qq": qq, "email": email} # 3. 將用戶字典添加到名片列表 card_list.append(card_dict) print(card_list) # 4. 提示添加成功信息 print("成功添加 %s 的名片" % card_dict["name"])
技巧:在
PyCharm
中,能夠使用SHIFT + F6
統一修改變量名spa
def show_all(): """顯示所有 """ print("-" * 50) print("功能:顯示所有") for card_dict in card_list: print(card_dict)
\t
顯示def show_all(): """顯示所有 """ print("-" * 50) print("功能:顯示所有") # 打印表頭 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["email"]))
def show_all(): """顯示所有 """ print("-" * 50) print("功能:顯示所有") # 1. 判斷是否有名片記錄 if len(card_list) == 0: print("提示:沒有任何名片記錄") return
注意code
return
表示返回return
後沒有跟任何內容,只是表示該函數執行到此就再也不執行後續的代碼def search_card(): """搜索名片 """ print("-" * 50) print("功能:搜索名片") # 1. 提示要搜索的姓名 find_name = input("請輸入要搜索的姓名:") # 2. 遍歷字典 for card_dict in card_list: if card_dict["name"] == find_name: print("姓名\t\t\t電話\t\t\tQQ\t\t\t郵箱") print("-" * 40) print("%s\t\t\t%s\t\t\t%s\t\t\t%s" % ( card_dict["name"], card_dict["phone"], card_dict["qq"], card_dict["email"])) print("-" * 40) # TODO(小明) 針對找到的字典進行後續操做:修改/刪除 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 == "1": print("修改") elif action == "2": print("刪除")
elif action == "2": card_list.remove(find_dict) print("刪除成功")
if action == "1": find_dict["name"] = input("請輸入姓名:") find_dict["phone"] = input("請輸入電話:") find_dict["qq"] = input("請輸入QQ:") find_dict["email"] = input("請輸入郵件:") print("%s 的名片修改爲功" % find_dict["name"])
input
函數不能知足需求,那麼就新定義一個函數 input_card_info
對系統的 input
函數進行擴展def input_card_info(dict_value, tip_message): """輸入名片信息 :param dict_value: 字典原有值 :param tip_message: 輸入提示信息 :return: 若是輸入,返回輸入內容,不然返回字典原有值 """ # 1. 提示用戶輸入內容 result_str = input(tip_message) # 2. 針對用戶的輸入進行判斷,若是用戶輸入了內容,直接返回結果 if len(result_str) > 0: return result_str # 3. 若是用戶沒有輸入內容,返回 `字典中原有的值` else: return dict_value
Shebang
符號(#!
)#!
這個符號叫作 Shebang
或者 Sha-bang
Shebang
一般在 Unix
系統腳本的中 第一行開頭 使用which
查詢 python3
解釋器所在路徑$ which python3
#! /usr/bin/python3
$ chmod +x cards_main.py
./cards_main.py