python名片管理系统视频_python视频学习笔记6(名片管理系统开发)
cards_main.py主函數
cards_tools.py
----------------------------------------------------------------------------------------------------------------------------------
cards_main.py
"""TODO 顯示系統菜單,用于標記需要去做的工作
pass就是一個空語句,不做任何事情,一般用做占位語句
開發步驟思路講解:
1.準備主模塊和子模塊。子模塊放各種函數(將對名片的 **新增**、**查詢**、**修改**、**刪除** 等功能封裝在不同的函數中
2.main函數先導入子函數模塊,實現無限循環,主菜單展示,用戶輸入,字符串判斷
3.子函數中先羅列出各個功能函數名稱,而后將子函數安插到main函數中等待調用
4.開發子函數,完成show_menu
5.開發子函數,完成new_card
6.開發子函數,完成show_all
7.開發子函數,完成search_card
8.
"""
import cards_tools #導入要用到的模塊
while True:#在開發軟件時,如果 **不希望程序執行后** 立即退出,可以在程序中增加一個 **無限循環**
cards_tools.show_menu()#調用子函數中第一個方法
action = input("請選擇操作的功能")
print("您選擇的操作是:%s"%action)
if action in ["1","2","3"]:
#if action == "1" or action == "2" or action == "3":使用 `in` 針對 **列表** 判斷,避免使用 `or` 拼接復雜的邏輯條件
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#和while一起用表示由用戶來決定** 退出程序的時機
else:
print("輸出錯誤,重新輸入")
-------------------------------------------------------------------------------------------------------------------------------------
cards_tools.py
card_list = []
#程序就是用來處理數據的,而變量就是用來存儲數據的
# 使用 **字典** 記錄 **每一張名片** 的詳細信息,使用 **列表** 統一記錄所有的 **名片字典**
# 在 `cards_tools` 文件的頂部增加一個 **列表變量**,所有名片相關操作**,都需要使用這個列表,所以應該 **定義在程序的頂部**
def show_menu():
print("*"*50)
print("歡迎使用【菜單管理系統】V1.0")
print("")
print("1. 新建名片")
print("2. 顯示全部")
print("3. 查詢名片")
print("")
print("0. 退出系統")
print("*" * 50)
#增加名片
#1.定義一個列表變量在開頭
#2.輸入名片信息并保存到一個字典
#3.將字典添加到名片列表
def new_card():
print("-"*50)
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(card_list)
print("成功添加%s的名片" % card_dict["name"])#提示名片添加完成
#查看所有名片
#增加標題
#遍歷一遍列表
#增加沒有名片記錄判斷
def show_all():
print("-" * 50)
print("功能:顯示全部")
if len(card_list)==0:#增加沒有名片記錄判斷
print("提示:沒有任何名片記錄")
return #如果在 `return` 后沒有跟任何內容,只是表示該函數執行到此就不再執行后續的代碼
for name in ["姓名", "電話", "QQ", "郵箱"]: # 打印表頭
print(name, end="\t\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 search_card():
print("-" * 50)
print("功能:搜索名片")
find_name = input("請輸入要搜索的姓名:")# 1. 提示要搜索的姓名
for card_dict in card_list:# 2. 遍歷字典
if card_dict["name"] == find_name:
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)
deal_card(card_dict) #3.下方開始定義修改刪除的新函數
break
else:
print("沒有找到 %s" % find_name)
#修改刪除名片
#先讓用戶輸入操作
#根據提示來做修改和刪除方法
#開啟新函數用來優化不想修改名片的功能
def deal_card(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"],"請輸入郵箱,回車不修改")#由于找到的字典記錄已經在列表中保存,要修改名片記錄,只需要把列表中對應的字典中每一個鍵值對的數據修改即可
elif action_str == "2":
card_list.remove(find_dict) #由于找到的字典記錄已經在列表中保存,要刪除名片記錄,只需要把列表中對應的字典刪除即可
print("刪除成功")
#名片不想修改的情況
#定義原有值和輸入值,有哪個返回哪個字段
def input_card_info(dict_value,tip_message):#:param dict_value: 字典原有值:param tip_message: 輸入提示信息 :return: 如果輸入,返回輸入內容,否則返回字典原有值
result_str = input(tip_message) # 1. 提示用戶輸入內容
if len(result_str) > 0: # 2. 針對用戶的輸入進行判斷,如果用戶輸入了內容,直接返回結果
return result_str
else:# 3. 如果用戶沒有輸入內容,返回字典中原有的值`
return dict_value
總結
以上是生活随笔為你收集整理的python名片管理系统视频_python视频学习笔记6(名片管理系统开发)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DMZ在虚拟化环境中的部署
- 下一篇: 【转】时间序列分析——基于R,王燕 《时