本文實(shí)例為大家分享了python實(shí)現(xiàn)名片管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
功能需求
- 用戶輸入數(shù)字選擇要進(jìn)行的操作
- 添加名片
- 刪除名片
- 修改名片
- 查詢名片
- 顯示所有名片
- 退出系統(tǒng)
缺點(diǎn)(待改進(jìn))
數(shù)據(jù)未保存到后臺(tái),添加的數(shù)據(jù)僅限當(dāng)次運(yùn)行程序時(shí)使用
話不多說(shuō),上代碼!
主程序
# coding=utf8
from method import *
# 導(dǎo)入定時(shí)器是為了方便觀察每次操作的結(jié)果
from time import sleep
cards = []
# 讓這個(gè)程序無(wú)限循環(huán),直到用戶想要其終止
while True:
sleep(1)
menu()
ope_num = input('請(qǐng)輸入要進(jìn)行的操作(1-6): ')
if ope_num == '1':
addinfo(cards)
elif ope_num == '2':
delinfo(cards)
elif ope_num == '3':
updateinfo(cards)
elif ope_num == '4':
searchinfo(cards)
elif ope_num == '5':
showinfo(cards)
elif ope_num == '6':
sure = input('你確定要退出系統(tǒng)嗎(YES/NO)')
if sure.upper() == 'YES':
break
else:
print('輸入錯(cuò)誤,請(qǐng)重新輸入?。。。〝?shù)字1-6)')
函數(shù)文件
# 定義一個(gè)menu方法
def menu():
print('------------------\n'
'\t名片管理系統(tǒng)\n'
'1:添加名片\n'
'2:刪除名片\n'
'3:修改名片\n'
'4:查詢名片\n'
'5:顯示所有名片\n'
'6:退出系統(tǒng)\n'
'------------------')
# 添加名片
def addinfo(lists):
# 定義一個(gè)字典,存放這個(gè)名片的信息
info = {}
# 獲取姓名
def getname():
name = input('請(qǐng)輸入姓名: ')
# 判斷姓名是否由 數(shù)字、字母、數(shù)字和字母 組成,即:不能包含標(biāo)點(diǎn)符號(hào)和空格,不能為空
# 如果不符合要求,提示檢查,并重新輸入
# 一直提示用戶輸入,直到符合要求
while name.isalnum() != True:
print('請(qǐng)檢查輸入!??! (不能包含標(biāo)點(diǎn)符號(hào)和空格,不能為空) ')
name = input('請(qǐng)輸入姓名: ')
return name
# 獲取手機(jī)號(hào)
def getphone():
phone = input('請(qǐng)輸入手機(jī)號(hào): ')
# 判斷手機(jī)號(hào)是否由 11位數(shù)字 組成
# 如果不符合要求,提示檢查,并重新輸入
while (len(phone) != 11) or (phone.isdigit() != True):
print('請(qǐng)檢查輸入?。。?(由11位純數(shù)字組成,不能為空) ')
phone = input('請(qǐng)輸入手機(jī)號(hào): ')
return phone
# 獲取QQ號(hào)
def getqq():
qq = input('請(qǐng)輸入QQ號(hào): ')
# 判斷QQ號(hào)是否由 5-10位數(shù)字 組成
# 如果不符合要求,提示檢查,并重新輸入
while ((len(qq) 5) or (len(qq) > 10)) or (qq.isdigit() != True):
print('請(qǐng)檢查輸入?。?! (由5-10位純數(shù)字組成,不能為空) ')
qq = input('請(qǐng)輸入QQ號(hào): ')
return qq
# 如果該名片的序號(hào)為,列表長(zhǎng)度+1
info['num'] = len(lists) + 1
# 通過(guò)調(diào)用其他函數(shù)獲取對(duì)應(yīng)信息
info['name'] = getname()
info['phone'] = getphone()
info['qq'] = getqq()
# 將該字典存入名片列表中
lists.append(info)
print('添加成功!')
showinfo(lists)
# 輸出所有名片列表
def showinfo(lists):
print('序號(hào)\t姓名\t\t手機(jī)號(hào)\t\tQQ號(hào)'.ljust(30))
for lis in lists:
for value in lis.values():
print(value, end='\t')
print('\n')
# 刪除名片
def delinfo(lists):
del_name = input('請(qǐng)輸入您需要?jiǎng)h除名片的姓名: ')
flag = True
for lis in lists:
if lis['name'] == del_name:
lists.remove(lis)
print('刪除成功!')
showinfo(lists)
flag = False
break
if flag == True:
print('名片不存在?。。?)
# 修改名片
def updateinfo(lists):
upd_name = input('請(qǐng)輸入您需要修改名片的姓名: ')
flag = True
for lis in lists:
if lis['name'] == upd_name:
lis['name']=input('請(qǐng)輸入新姓名: ')
lis['phone']=input('請(qǐng)輸入新手機(jī)號(hào): ')
lis['qq']=input('請(qǐng)輸入新QQ號(hào): ')
print('修改成功!')
showinfo(lists)
flag = False
break
if flag == True:
print('名片不存在?。?!')
# 查詢名片
def searchinfo(lists):
se_name = input('請(qǐng)輸入您需要查詢的姓名: ')
flag = True
for lis in lists:
if lis['name'] == se_name:
print('序號(hào)\t姓名\t\t手機(jī)號(hào)\t\tQQ號(hào)'.ljust(30))
for value in lis.values():
print(value, end='\t')
print('\n')
flag = False
break
if flag == True:
print('名片不存在?。?!')
執(zhí)行結(jié)果
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 教你用python實(shí)現(xiàn)一個(gè)無(wú)界面的小型圖書(shū)管理系統(tǒng)
- python實(shí)現(xiàn)學(xué)生管理系統(tǒng)源碼
- 基于python實(shí)現(xiàn)銀行管理系統(tǒng)
- 基于python實(shí)現(xiàn)圖書(shū)管理系統(tǒng)
- Python實(shí)現(xiàn)學(xué)生管理系統(tǒng)的代碼(JSON模塊)
- python實(shí)現(xiàn)學(xué)生通訊錄管理系統(tǒng)
- 使用python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
- 利用Python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的完整實(shí)例
- 教你用Python實(shí)現(xiàn)簡(jiǎn)易版學(xué)生信息管理系統(tǒng)(含源碼)