五、黑马名片管理系统
1. 需求
| 程序启动,显示名片管理系统欢迎界面,并显示功能菜单
用户用数字选择不同的功能
根据功能选择,执行不同的功能
用户名片需要记录用户的 姓名、电话、QQ、邮件
如果查询到指定的名片,用户可以选择 修改 或者 删除 名片
|
2. 菜单功能
菜单需要多次输出,所以可以放在死循环中,如果退出程序直接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
|
4. 新建名片
1、定义列表保存所有的名片
| cardList = [] # 名片数据列表 [姓名,电话,qq,email]
|
名片包含四个属性,可以再通过列表按照姓名、电话、qq、email的顺序保存
2、定义createCard
创建名片函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | 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()
...
|
5. 显示全部名片
1、定义显示所有名片的showAll
函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | 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()
|
6. 搜索名片
搜索出名片
1、定义searchCard
函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | 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函数是对搜索的名片操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 | 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | def modifyCard(card):
'''
修改名片
:param card:
:return:
'''
name = input('请输入姓名:')
phone = input('请输入电话:')
qq = input('请输入QQ:')
email = input('请输入邮箱:')
# 修改名片
card[0] = name
card[1] = phone
card[2] = qq
card[3] = email
|
删除名片deleteCard
| def deleteCard(card):
'''
删除名片
:param card: 名片列表
:return:
'''
cardList.remove(card)
|