python實(shí)現(xiàn)名片管理系統(tǒng)
本文實(shí)例為大家分享了python實(shí)現(xiàn)名片管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
系統(tǒng)需求
程序啟動,顯示名片管理系統(tǒng)歡迎界面,并顯示功能菜單
**************************************************
歡迎使用【名片管理系統(tǒng)】V1.0
1. 新建名片
2. 顯示全部
3. 查詢名片
0. 退出系統(tǒng)
**************************************************
- 用戶用數(shù)字選擇不同的功能
- 根據(jù)功能選擇,執(zhí)行不同的功能
- 用戶名片需要記錄用戶的 姓名、電話、QQ、郵件
- 如果查詢到指定的名片,用戶可以選擇 修改 或者 刪除 名片
- 信息保存本地
需求分析
- 采用分文件的方式進(jìn)行開發(fā),主文件cards_main.py復(fù)雜業(yè)務(wù)邏輯,cards_tool.py文件負(fù)責(zé)具體的功能實(shí)現(xiàn)。
- 新建名片、顯示全部、查詢名片 對應(yīng)相應(yīng)的功能函數(shù)。如果代碼過長,再進(jìn)行拆分。
- 數(shù)據(jù)結(jié)構(gòu)的選擇?一條名片包含多個鍵值對采用字典數(shù)據(jù)類型,所有名片信息 采用列表數(shù)據(jù)結(jié)構(gòu)。
- 保證名片信息的本地保存和讀取使用python的文件操作,進(jìn)入名片系統(tǒng)先對名信息文件進(jìn)行讀取,在退出名片系統(tǒng)時,將所有名片信息重新寫入到名片文件中。
代碼實(shí)現(xiàn)
代碼很簡潔,注釋太多 容易凌亂。
cards_main.py
import cards_tool
# 主業(yè)務(wù)邏輯
cards_tool.read_card()
# 1.顯示用戶主界面
while True:
cards_tool.show_menu()
menu_str = input("請選擇執(zhí)行的操作:")
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()
break
else:
print("輸入有誤,請重新輸入")
cards_tool.py
import os
card_info_all = [] # 所有名片信息
# 名片管理 具體功能
def write_card():
"""退出系統(tǒng)時,將名片信息保存到文件夾中"""
f = open("E:\\workspace_python\\FirstDemo\\名片管理系統(tǒng).txt", "w")
f.write(str(card_info_all))
f.close()
def read_card():
"""進(jìn)入系統(tǒng)時,將名片信息加載到內(nèi)存中"""
is_exist = os.path.exists("E:\\workspace_python\\FirstDemo\\名片管理系統(tǒng).txt")
if is_exist:
# 文件存在將信息加載到內(nèi)存中
f = open("E:\\workspace_python\\FirstDemo\\名片管理系統(tǒng).txt","r")
global card_info_all
card_info_all = eval(f.read())
# print(card_info_all)
f.close()
else:
# 沒有文件創(chuàng)建空文件
f = open("E:\\workspace_python\\FirstDemo\\名片管理系統(tǒng).txt", "w")
f.close()
print(is_exist)
def show_menu():
"""主菜單頁面展示"""
print("*"*30)
print("歡迎使用[命名管理系統(tǒng)] v1.0")
print()
print("1.新建名片")
print("2.顯示全部")
print("3.查詢名片")
print()
print("0.退出系統(tǒng)")
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("沒有任何名片")
return
print("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):
"""名片的高級設(shè)置"""
while True:
menu = input("請輸入對名片的操作:1.修改/ 2.刪除/ 0.返回上一級")
if menu == "1":
name = input("請輸入姓名:")
phone = input("請輸入電話:")
qq = input("請輸入qq號:")
email = input("請輸入郵箱:")
card["name"] = name
card["phone"] = phone
card["qq"] = qq
card["email"] = email
print("%s 的名片修改成功" % name)
return
elif menu == "2":
card_info_all.remove(card)
print("刪除名片成功")
return
elif menu == "0":
return
else:
print("輸入有誤,請重新輸入")
代碼運(yùn)行結(jié)果


練習(xí)總結(jié)
這個小練習(xí)主要是對python基礎(chǔ)知識的綜合運(yùn)用,入手python 這些基本知識一定要掌握,有過其他編程語言經(jīng)驗的小伙伴是不是感覺很簡單。
更多學(xué)習(xí)資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python+Appium實(shí)現(xiàn)自動化測試的使用步驟
這篇文章主要介紹了Python+Appium實(shí)現(xiàn)自動化測試的使用步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
python上下文管理器協(xié)議的實(shí)現(xiàn)
這篇文章主要介紹了python上下文管理器協(xié)議的實(shí)現(xiàn),在python中所有實(shí)現(xiàn)了上下文管理器協(xié)議的對象 都可以用使用with操作,with啟動了對象的上下文管理器2022-06-06
Python實(shí)現(xiàn)自動識別并批量轉(zhuǎn)換文本文件編碼
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)自動識別并批量轉(zhuǎn)換文本文件編碼的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-03-03
對python中大文件的導(dǎo)入與導(dǎo)出方法詳解
今天小編就為大家分享一篇對python中大文件的導(dǎo)入與導(dǎo)出方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Python3利用openpyxl讀寫Excel文件的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Python3利用openpyxl讀寫Excel文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02

