需求:
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_toolswhile 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