名片管理系统主要分为三个部分:
(1)新增名片
(2)显示名片
(3)查询名片
首先创建两个python文件,cards_main.py 和 cards_tools.py
cards_main.py
import cards_tools
# 无限循环,有用户主动决定什么时候退出循环
while True:
# 显示菜单功能
action_str = input(‘请选择希望执行的操作:’)
print(‘您选择的操作是【%s】’% action_str)
if action_str in [‘1’,’2’,’3’]:
# 新增名片
if action_str == ‘1’:
cards_tools.new_card()
if action_str == ‘2’:
cards_tools.show_all()
if action_str == ‘3’:
cards_tools.search_card()
elif action_str:
print(‘欢迎再次使用【名片管理系统】‘)
break
else:
print(‘您输入的不正确,请重新选择’)
card_main.py 文件主要是列了一个名片管理系统的大框,主要用了 if 函数判断用户输入的数字决定输出的是哪个模块。
输入 1 是新增名片
输入 2 是显示名片
输入 3 是搜索名片
输入 0 是退出系统
cards_tools.py
# 记录所有的名片字典
card_list = []
def show_menu():
print(‘*’ * 50)
print(‘欢迎使用【名片管理系统】V1.0’)
print(‘’)
print(‘1.新增名片’)
print(‘2.显示名片’)
print(‘3.搜索名片’)
print(‘’)
print(‘0.退出系统’)
print(‘*’ * 50)
上述代码的运行结果如图片所示,接下来要对if函数下面的三个菜单添加功能,在输入数字1下方的定义new_card(),在输入数字2下方定义show_all(),在输入数字3下方定义search_card()。
cards_tools.py
def new_card():
# 新增名片
print(‘新增名片‘)
# 提示用户输入详细信息
name_str = input(‘请输入姓名:’)
phone_str = input(‘请输入电话号码:’)
qq_str = input(‘请输入QQ号码:’)
email_str = input(‘请输入邮箱:’)
# 使用用户输入的信息建立一个名片字典
card_dict = {‘name’:name_str,
’phone’:phone_str,
’qq’:qq_str,
’email’:email_str}
# 将名片字典添加到列表中
card_list.append(card_dict)
print(card_list)
# 提示用户添加成功
print(‘添加%s的名片成功’ % name_str)
def show_all():
# 显示所有名片
print(‘-‘*50)
print(‘显示所有名片’)
if len(card_list) == 0:
print(‘当前没有名片,请添加名片!’)
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[‘email’]))
def search_card():
print(‘-‘*50)
print(‘搜索名片’)
# 提示用户要搜索的姓名
find_name = input(‘请输入要搜索的姓名:’)
# 遍历名片列表,搜索要搜索的姓名,如果没找到,要提示用户
for card_dict in card_list:
if card_dict = find_name:
print(‘姓名\t\t电话\t\tQQ\t\t邮箱’)
print(‘=‘*50)
print(‘%s\t\t%s\t\t%s\t\t%s’ %
(card_dict[‘name’],
card_dict[’phone’],
card_dict[‘qq’],
card_dict[‘email’]))
# 针对找到的名片记录进行修改或删除操作
deal_card(card_dict)
break
else:
print(‘没找到%s’ % find_name)
deal_card() 和 input_card_info()函数是对search_card()搜索名片中搜索出来的名片可以进行修改和删除,修改可以只修改其中一项,不需要修改的项不需要填写内容直接回车即可。
def deal_card(find_name):
print(find_dict)
action_str = input(‘请输入要执行的操作:’
‘[1]修改[2]删除[0]返回上一级菜单’)
if action_str == ‘1’:
find_dict[‘name’] = input_card_info(find_dict[‘name’],’姓名:’)
find_dict[‘phone’]= input_card_info(find_dict[‘phone’],’电话号码:’)
find_dict[‘qq’]= input_card_info(find_dict[‘email’],’QQ号码:’)
find_dict[]=
input_card_info(find_dict[‘email’],’邮箱:’)
print(‘修改名片成功!’)
elif action_str == ‘2’:
card_list.remove(find_dict)
print(‘删除成功!’)
def input_card_info(dict_value,tip_message):
# 提示用户输入信息
return_str = input(tip_message)
# 针对用户输入的信息进行判断,如果用户输入了内容,直接返回结果
if len(result_str)>0:
return result_str
else:
return dict_value
# 如果用户没有输入内容,返回字典中原有的值