前言
一、实验目的
1、 掌握列表的定义、常见操作、列表的访问等
2、 掌握字典的定义、常见操作、字典的访问等
3、 掌握函数的定义、函数的调用等
二、实验内容
1、 定义一个名片管理器菜单
具体格式如下:
1.添加一个新的名片
2.删除一个名片
3.修改一个名片
4.查询一个名片
5.显示所有的名片
6.退出系统
2、 每一个名片信息包括:姓名、性别、年龄、工作单位、联系电话、QQ、微信号等,名片信息以字典形式存储在列表中;
3、 定义添加名片的函数:def add_new_card_infor():
4、 定义删除名片的函数(根据姓名来删除):def dele_card_infor():
5、 定义查找名片的函数(根据姓名来进行查找):
def find_card_infor():
6、 定义显示所有名片信息的函数:def show_all_infor():
7、 定义主函数完成对整个程序的控制:
def main():
8、调用主函数:main()
三、程序实现
1.代码
# 来个菜单
def display_menu():
print('='*35)
print(' 1.添加名片')
print(' 2.删除名片')
print(' 3.修改名片')
print(' 4.查询名片')
print(' 5.获取所有名片信息')
print(' 6.退出系统')
print('='*35)
# 获取用户信息
def get_choice():
selected_key = input("请输入选择的序号:")
return int(selected_key)
# 1.添加名片
def add_new_card_infor():
card={}
new_name = input('请输入姓名:')
new_gender = input('请输入性别:')
new_age = input('请输入年龄:')
new_work = input('请输入工作单位:')
new_phone = input('请输入联系电话:')
new_QQ = input('请输入QQ号:')
new_WX = input('请输入微信号:')
card['姓名'] = new_name
card['性别'] = new_gender
card['年龄'] = new_age
card['工作单位'] = new_work
card['联系电话'] = new_phone
card['QQ号'] = new_QQ
card['微信号'] = new_WX
list.append(card)
print("信息存入成功!!")
print("您存入的信息为:")
print(card)
re = input("请输入任意键返回菜单列表...")
# 2.删除名片
def dele_card_infor(del_list):
name = input('请输入要删除的名片的姓名:')
count = 0
flag_1 = 0
for i in reversed(range(len(del_list))):
count += 1
k = del_list[i].get("姓名","none")
if k == name :
#显示将要删除的信息功能实现
print("您即将删除的信息为:\n",del_list[i])
#确认删除
j = 1
while (j):
in_content = input("是否确认删除(Y/N)?")
if in_content == "Y" or in_content == "y":
del del_list[i]
print("执行成功!")
flag_1 = 1
j = 0
elif in_content == "N" or in_content == "n":
flag_1 = 1
j = 0
else:
print("你输入有误,请重输入!")
if count == len(del_list) and flag_1 == 0:
print("查无此姓名!")
break
re = input("请输入任意键返回菜单列表...")
# 3,修改名片
def modify_info(mod_list):
name = input('请输入要修改的名片的姓名:')
count = 0
for i in reversed(range(len(mod_list))):
count += 1
k = mod_list[i].get("姓名", "none")
if k == name:
card = {}
new_name = input('请输入姓名:')
new_gender = input('请输入性别:')
new_age = input('请输入年龄:')
new_work = input('请输入工作单位:')
new_phone = input('请输入联系电话:')
new_QQ = input('请输入QQ号:')
new_WX = input('请输入微信号:')
card['姓名'] = new_name
card['性别'] = new_gender
card['年龄'] = new_age
card['工作单位'] = new_work
card['联系电话'] = new_phone
card['QQ号'] = new_QQ
card['微信号'] = new_WX
mod_list[i] = card
print("您修改后的信息为:")
print(card)
break
if count == len(mod_list):
print("查无此名片!")
break
# 方便用户看到提示信息
re = input("请输入任意键返回菜单列表...")
# 4,查询名片
def find_card_infor(find_list):
name = input('请输入要查询的名片的姓名:')
count = 0
for i in reversed(range(len(find_list))):
count += 1
k = find_list[i].get("姓名", "none")
if k == name:
print(find_list[i])
if count == len(find_list):
print("查无此编号!")
break
re = input("请输入任意键返回菜单列表...")
# 5,查看所有名片的信息
def show_all_infor(show_list):
print('='*110)
for info in show_list:
print(' '*50,'所有名片信息:')
print(info)
print('='*110)
re = input("请输入任意键返回菜单列表...")
list = [] # 定义一个空列表用来装我的用户
def main():
i = 0
while i < 1:
display_menu()
key = get_choice()
if key == 1:
add_new_card_infor()
elif key == 2:
dele_card_infor(list)
elif key == 3:
modify_info(list)
elif key == 4:
find_card_infor(list)
elif key == 5:
show_all_infor(list)
elif key == 6:
break
else:
print('输入有误,请重新输入.............')
main()
2.实验结果(包括输入数据和输出结果)
三、总结
- 问题:存入名片信息和修改信息不够直观,不能让用户感受到确实修改或存入的感觉
解决方法:存入或修改完成后输出一遍 - 问题:代码执行命令展示完成存入信息后结束过快,用户可能没看清楚
解决方法:加入键盘获取,当用户输入任意键后再返回主菜单