需求:
1、用户使用数字选择不同的功能;2、根据功能选择,执行对应的功能;3、需要记录用户的 姓名、电话、QQ、邮件;4、查询到指定名片 用户可以选择 修改、删除名片操作; 实现步骤:
1、框架搭建2、不同功能的函数定义3、Linux下运行 文件命名:
在cards_tools.py文件中定义需要使用的函数;在cards_main.py文件中引用定义的函数;
cards_main.py # 框架文件 cards_tools.py # 定义函数文件
cards_main.py文件:
import cards_tools
while True:
cards_tools.show_menu()
action_str = input("请选择希望执行的操作:")
print("您选择的操作是【%s】" % action_str)
if action_str in ["1", "2", "3"]:
pass
if action_str == "1":
# 新增名片
cards_tools.new_card()
elif action_str == "2":
# 查看所有名片
cards_tools.show_all()
elif action_str == "3":
# 搜索名片
cards_tools.search_card()
elif action_str == "0":
print("欢迎再次使用【名片管理系统】")
break
else:
print("选择操作无效!请重新再次选择")
cards_tools.py文件:
card_list = []
def show_menu():
"""首页显示"""
print('*' * 50)
print('')
print('欢迎使用【名片管理系统】V 1.0')
print('1. 新增名片')
print('2. 显示全部')
print('3. 搜索名片')
print('')
print('0. 退出系统')
print('*' * 50)
def new_card():
"""新增名片"""
print('*' * 50)
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('%s 成功添加' % name_str)
def show_all():
"""显示所有名片"""
print('*' * 50)
print('显示所有名片')
if len(card_list) == 0:
print('没有任务名片,请进行添加后查询!')
return
# return 可以返回一个函数的执行结果
# 如果 return 后面没有任何内容 表示会返回到调用函数的位置 并且不返回任何的结果
# 下方代码不会被执行
for name in ["姓名", "电话", "QQ", "邮箱"]:
print(name, end="tt")
print("")
print('=' * 50)
for card_dict in card_list:
print("%stt%stt%stt%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["name"] == find_name:
print("姓名tt电话tt QQtt邮箱")
print("=" * 50)
print("%stt%stt%stt%s" % (card_dict["name"],
card_dict["phone"],
card_dict["qq"],
card_dict["email"]))
deal_card(card_dict)
break
else:
print('没有找到 %s' % find_name)
def deal_card(find_name):
"""处理查找到的名片
:param find_name: 查找到的名片
:return:
"""
# print(find_name)
action_str = input('请输入要执行的操作 '
'[1] 修改 [2]删除 [0]返回上级菜单')
if action_str == "1":
find_name["name"] = input_card_info(find_name["name"], '姓名[回车不修改]:')
find_name["phone"] = input_card_info(find_name["phone"], '电话[回车不修改]:')
find_name["qq"] = input_card_info(find_name["qq"], 'QQ[回车不修改]:')
find_name["email"] = input_card_info(find_name["email"], '邮箱[回车不修改]:')
print('修改名片成功!')
elif action_str == "2":
print('删除名片 %s 成功!' % find_name['name'])
card_list.remove(find_name)
def input_card_info(find_value, tip_message):
"""输入名片信息
:param find_value: 查找到字典中原有的值
:param tip_message: 输入的提示文字
:return: 如果用户输入内容 则返回内容 ,用户没有输入内容 则返回原有内容
"""
result_str = input(tip_message)
if len(result_str) > 0:
return result_str
else:
return find_value
Linux下运行
[root@haimati ~]# yum -y install dos2unix [root@haimati ~]# dos2unix cards_main.py [root@haimati ~]# dos2unix cards_tools.py [root@haimati ~]# head -1 cards_main.py # 添加python3解释器路径(Shebang) #!/usr/bin/python3 [root@haimati ~]# chmod +x cards_main.py [root@haimati ~]# ./cards_main.py
或者 直接使用python3解释器执行脚本:
[root@haimati ~]# python3 cards_main.py



