python小练习—名片管理系统(增、删、改、查、数据本地保存)
生活随笔
收集整理的這篇文章主要介紹了
python小练习—名片管理系统(增、删、改、查、数据本地保存)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
名片管理系統
系統需求
- 程序啟動,顯示名片管理系統歡迎界面,并顯示功能菜單
- 用戶用數字選擇不同的功能
- 根據功能選擇,執行不同的功能
- 用戶名片需要記錄用戶的 姓名、電話、QQ、郵件
- 如果查詢到指定的名片,用戶可以選擇 修改 或者 刪除 名片
- 信息保存本地
需求分析
- 采用分文件的方式進行開發,主文件cards_main.py復雜業務邏輯,cards_tool.py文件負責具體的功能實現。
- 新建名片、顯示全部、查詢名片 對應相應的功能函數。如果代碼過長,再進行拆分。
- 數據結構的選擇?一條名片包含多個鍵值對采用字典數據類型,所有名片信息 采用列表數據結構。
- 保證名片信息的本地保存和讀取使用python的文件操作,進入名片系統先對名信息文件進行讀取,在退出名片系統時,將所有名片信息重新寫入到名片文件中。
代碼實現
代碼很簡潔,注釋太多 容易凌亂。cards_main.py
import cards_tool # 主業務邏輯 cards_tool.read_card()# 1.顯示用戶主界面 while True:cards_tool.show_menu()menu_str = input("請選擇執行的操作:")print("您選擇的功能:%s" % menu_str)if menu_str == "1":cards_tool.create_card()elif menu_str == "2":cards_tool.show_card_all()elif menu_str == "3":cards_tool.search_card()elif menu_str == "0":cards_tool.write_card()breakelse:print("輸入有誤,請重新輸入")cards_tool.py import os card_info_all = [] # 所有名片信息 # 名片管理 具體功能 def write_card():"""退出系統時,將名片信息保存到文件夾中"""f = open("E:\\workspace_python\\FirstDemo\\名片管理系統.txt", "w")f.write(str(card_info_all))f.close()def read_card():"""進入系統時,將名片信息加載到內存中"""is_exist = os.path.exists("E:\\workspace_python\\FirstDemo\\名片管理系統.txt")if is_exist:# 文件存在將信息加載到內存中f = open("E:\\workspace_python\\FirstDemo\\名片管理系統.txt","r")global card_info_allcard_info_all = eval(f.read())# print(card_info_all)f.close()else:# 沒有文件創建空文件f = open("E:\\workspace_python\\FirstDemo\\名片管理系統.txt", "w")f.close()print(is_exist)def show_menu():"""主菜單頁面展示"""print("*"*30)print("歡迎使用[命名管理系統] v1.0")print()print("1.新建名片")print("2.顯示全部")print("3.查詢名片")print()print("0.退出系統")print("*"*30)def create_card():"""新建名片"""print("功能:新建名片")name = input("請輸入姓名:")phone = input("請輸入電話:")qq = input("請輸入qq號:")email = input("請輸入郵箱:")card_info = {"name":name,"phone":phone, "qq":qq, "email":email}card_info_all.append(card_info)print("添加%s的名片成功" % name)def show_card_all():"""顯示所有名片"""print("功能:顯示全部")if not len(card_info_all):print("沒有任何名片")returnprint("name".ljust(14),"phone".ljust(14),"qq".ljust(14),"email".ljust(14),sep="")print("-"*56)for card in card_info_all:print(card["name"].ljust(14),card["phone"].ljust(14),card["qq"].ljust(14),card["email"].ljust(14),sep="")print("-"*56)def search_card():"""查詢名片"""print("功能:查詢名片")name = input("請輸入查詢的姓名:")for card in card_info_all:if name == card["name"]:print("name".ljust(14), "phone".ljust(14), "qq".ljust(14), "email".ljust(14), sep="")print("-" * 56)print(card["name"].ljust(14), card["phone"].ljust(14), card["qq"].ljust(14), card["email"].ljust(14),sep="")# 名片高級處理set_card(card)break;else:print("沒有找到%s" % name)def set_card(card):"""名片的高級設置"""while True:menu = input("請輸入對名片的操作:1.修改/ 2.刪除/ 0.返回上一級")if menu == "1":name = input("請輸入姓名:")phone = input("請輸入電話:")qq = input("請輸入qq號:")email = input("請輸入郵箱:")card["name"] = namecard["phone"] = phonecard["qq"] = qqcard["email"] = emailprint("%s 的名片修改成功" % name)returnelif menu == "2":card_info_all.remove(card)print("刪除名片成功")returnelif menu == "0":returnelse:print("輸入有誤,請重新輸入")
代碼運行結果
練習總結
這個小練習主要是對python基礎知識的綜合運用,入手python 這些基本知識一定要掌握,有過其他編程語言經驗的小伙伴是不是感覺很簡單。
總結
以上是生活随笔為你收集整理的python小练习—名片管理系统(增、删、改、查、数据本地保存)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker基础入门总结
- 下一篇: hdoj1856