需求
:::info
- 程序启动,显示名片管理系统欢迎界面,并显示功能菜单
- 用户用数字选择不同的功能:
新建名片、显示名片、查询名片、退出系统
- 用户名片需要记录用户的
姓名、电话、QQ、邮件
- 显示名片可以列举出所有已经保存的名片
- 如果查询到指定的名片,用户可以选择
修改
、删除
名片 :::菜单功能
菜单需要多次输出,所以可以放在死循环中,如果退出程序直接break
循环即可while True:
print('*' * 50)
print('欢迎使用[名片管理系统]V1.0')
print()
print('1.新建名片')
print('2.显示名片')
print('3.查询名片')
print()
print('0.退出系统')
print('*' * 50)
3. 输入处理
输入不同的数字代表不同的操作while True:
# ...
type = int(input('请输入执行的操作:'))
if type == 1:
# 新建名片
elif type == 2:
# 显示全部
elif type == 3:
# 搜索名片
elif type == 0:
break
新建名片
1、定义列表保存所有的名片
名片包含四个属性,可以再通过列表按照cardList = [] # 名片数据列表 [姓名,电话,qq,email]
姓名、电话、qq、email
的顺序保存
- 用户名片需要记录用户的
2、定义createCard
创建名片函数
def createCard():
'''
创建新名片
:return:
'''
print('您选择的功能是: 1')
print('功能: 新建名片')
name = input('请输入姓名:')
phone = input('请输入电话:')
qq = input('请输入QQ:')
email = input('请输入邮箱:')
# 每一个名片是列表数据
# [姓名,电话,qq,email]
card = [name,phone,qq,email]
# 添加到列表中
cardList.append(card)
3、在循环中调用
while True:
...
type = int(input('请输入执行的操作:'))
if type == 1:
# 新建名片
createCard()
...
显示全部
1、定义显示所有名片的showAll函数
def showAll():
'''
显示所有的名片
:return:
'''
print('您选择的功能: 2')
print('功能提示: 显示全部')
# 表头
print('姓名\t电话\tQQ\t邮件')
print('-'*50)
# 找到所有的名片并打印
for card in cardList:
# name = card[0]
# phone = card[1]
# qq = card[2]
# email = card[3]
print('%s\t%s\t%s\t%s' % tuple(card))
print('-'*50)
2、调用
while True:
#...
type = int(input('请输入执行的操作:'))
#...
elif type == 2:
showAll()
查询名片
搜索名片
1、定义searchCard
函数
def searchCard():
'''
查询名片
:return:
'''
print('您选择的功能是: 3')
print('功能: 查询名片')
name = input('请输入查询的姓名:')
# 查询名片
for card in cardList:
# 判断当前card的名字和name是否相同
if card[0]==name:
# 找到了
# 执行其它的操作
handleCard(card)
# 退出当前的循环
break
else:
print('没有找到对应的用户:%s'%name)
其中handleCard
函数是对搜索的结果进行处理,后面实现
2、调用
while True:
...
type = int(input('请输入执行的操作:'))
...
elif type == 3:
searchCard()
操作名片
handleCard
函数是对搜索的名片操作
def handleCard(card):
'''
处理名片
:param card:
:return:
'''
while True:
type = int(input('请输入对名片的操作: 1.修改/ 2.删除/ 0.返回上一级:'))
# 根据不同的type做判断
if type==1:
# 修改
modifyCard(card)
# 跳出循环
break
elif type==2:
# 删除
deleteCard(card)
break
elif type==0:
# 返回上一级
break
else:
print('输入错误,请重新输入')
输入1进行修改,对应modifyCard
函数
输入2进行删除,对应deleteCard
函数
修改名片modifyCard
def modifyCard(card):
'''
修改名片
:param card:
:return:
'''
# 修改名片
card[0] = input('请输入姓名:')
card[1] = input('请输入电话:')
card[2] = input('请输入QQ:')
card[3] = input('请输入邮箱:')
删除名片deleteCard
def deleteCard(card):
'''
删除名片
:param card: 名片列表
:return:
'''
cardList.remove(card)