我們小做一個名片管理系統,首先要確定系統的框架,要實現增刪改查的功能,可以定義 1:增加 2:查看 3:查詢(並修改)4:退出系統,我們確定了這幾項功能,然後我們就可以編寫主程序了。
功能列表 | |
---|---|
1 | 新建一個名片 |
2 | 查看所有名片 |
3 | 查詢和修改名片 |
4 | 退出程序 |
- while循環用來保持程序持續運行,直到輸入“0”退出程序
- 使用dict字典來存儲每一個名片的姓名、電話、qq、郵箱
- 使用list列表保存多條字典信息(名片信息)
話不多說直接上程序:
說明:這裏的import引入的是我自己封裝功能函數 用來實現增刪改查的功能,你可以複製下一段代碼取名toos 並放入python 文件夾中即可調用。
#這裏的import引入的是我自己寫的功能函數 用來實現增刪改查的功能
import toos
while True:
toos.show_menu()
action_str=input("請選擇您希望執行的操作:")
print("您選擇的是 %s"%action_str)
if action_str in ["1","2","3"]:
if action_str=="1":
toos.new_card()
elif action_str=="2":
toos.show_all()
elif action_str=="3":
toos.search()
elif action_str =="0":
print("歡迎再次使用【名片管理系統】")
break
#如果在開發程序時,不想立刻寫出分支內部的代碼,
# 這個時候可以使用pass關鍵字,pass關鍵字是一個佔位符,
# 他可以保證代碼結構正確,程序運行時pass不執行任何操作。
else:
print("您輸入的不正確,請重新選擇")
功能函數如下:
#記錄所有名片字典
card_list=[]
def show_menu():
print("*******************")
print("歡迎進入名片管理系統")
print("1.新建名片")
print("2.顯示名片")
print("3.查詢名片")
print("0.退出程序")
print("********************")
def new_card():
"""新增名片"""
#1.提示用戶輸入名片詳細信息
name_str=input("請輸入用戶姓名")
phone_str=input("請輸入電話")
qq_str=input("請輸入QQ號碼")
emile_str=input("請輸入郵箱")
#2.把用戶輸入的名片信息建立一個字典
card_dict = {"name": name_str, "phone": phone_str, "qq": qq_str, "Emile": emile_str}
#3.將字典信息存入到名片列表中
card_list.append(card_dict)
#4.提示用戶添加成功
print("添加成功")
def show_all():
print("-" * 50)
"""顯示所有名片"""
#判斷是否有名片,如果沒有提示用戶輸入名片
if len(card_list)==0:
print("當前沒有任何記錄請添加名片")
#return 可以返回一個函數返回結果同時下方的代碼不會再執行
return
#打印表頭
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["Emile"]))
print("顯示名片")
def search():
"""搜索名片"""
find_name=input("請輸入您要檢索的名片姓名")
for card_dist in card_list:
if card_dist["name"] == find_name:
print("姓名\t\t電話\t\tQQ\t\t郵箱")
print("="*50)
print("%s\t\t%s\t\t%s\t\t%s"%(card_dist["name"],card_dist["phone"],card_dist["qq"],card_dist["Emile"]))
# TODO針對找到的字典進執行修改和刪除的操作
deal_card(card_dist)
break
else:
print("對不起沒找到")
def deal_card(find_dict):
print("-"*50)
action_str=input("請選擇要執行的操作:1/刪除 2/修改 0/返回主菜單")
if action_str=="1":
card_list.remove(find_dict)
print("刪除名片成功")
elif action_str=="2":
find_dict["name"]=card_input_info(find_dict["name"],"請輸入修改後的姓名:")
find_dict["phone"]=card_input_info(find_dict["phone"],"請輸入修改後的電話")
find_dict["qq"]=card_input_info(find_dict["qq"],"請輸入修改後的QQ號碼")
find_dict["Emile"]=card_input_info(find_dict["Emile"],"請輸入修改後的郵箱")
print("修改名片成功")
elif action_str=="0":
print("返回主菜單")
def card_input_info(dict_value,tip_massage):
"""
:param dict_value: 字典中原有的值
:param tip_massage:輸入的提示文字
:return:如果用戶輸入了內容,就返回內容,如果沒有內容,就返回字典中原有的值
"""
#提示用戶輸入內容
result_str=input(tip_massage)
#針對用戶輸入進行判斷,如果輸入了內容,直接返回結果
if len(result_str)>0:
return result_str
#如果用戶沒有輸入內容,則返回字典中原有的值
else:
return dict_value