Python 练习-名片管理小程序
2018-08-10 11:27:12来源:博客园 阅读 ()
Python基础知识的小综合练习。
需要实现的功能:
1.启动终端执行程序后,出现如下界面(新增,显示全部和查询)
2.通过相应的选项可以实现相应的功能
3.选择查找用户后,如果找到用户,提示用户进行修改或者删除操作
主要知识点:
1.分支结构,循环结构的使用
2.主函数搭建框架,主要功能写在另一模块中
3.每一个函数代码不宜太长,如果有子功能可以再封装成一个函数调用
4.列表,字典变量的应用
5.注释的技巧:函数添加文档注释,标记参数和返回值,以便阅读和调用时查看
待完成的功能可以使用 #TODU 标注。
主程序:
1 #! /usr/bin/python3 2 3 #导入card_tools模块 4 import card_tools 5 6 while True: 7 #显示功能菜单 8 card_tools.show_menu() 9 10 #获取用户输入内容 11 user_input = input("请选择您要进行的操作:") 12 13 #判断用户输入内容 14 if user_input in ["1","2","3"]: 15 if user_input == "1": 16 card_tools.new_cards() 17 elif user_input == "2": 18 card_tools.show_all() 19 else: 20 card_tools.search_card() 21 22 elif user_input == "0": 23 24 break 25 26 else: 27 print("您的操作有误0.0,请输入0-3的数字") 28 29 30 #
导入的模块:
1 def show_menu(): 2 """ 3 显示功能菜单函数 4 """ 5 print() 6 print("*"*50) 7 print("欢迎来到名片管理系统-.-") 8 print("-"*50) 9 print("\t[1] 新增名片") 10 print("\t[2] 显示全部") 11 print("\t[3] 查询名片") 12 print("\t[0] 退出系统") 13 print("*"*50) 14 15 16 def make_tab(): 17 """ 18 打印表头 19 """ 20 print("="*50) 21 print("姓名\t\t年龄\t\t电话\t\t邮箱") 22 print("-"*50) 23 24 # 创建列表用于保存键值对 25 #不能放到函数里面,不然每次新建名片内容都被覆盖了 26 card_list = [] 27 28 29 def new_cards(): 30 """ 31 定义一个新建名片的函数,获取到用户输入的内容后,放入一个键值对当中,然后把键值对放入一个列表中 32 """ 33 # 获取用户输入内容并用键值对保存 34 name =input("请输入姓名:") 35 age = input("请输入年龄:") 36 tel = input("请输入电话:") 37 email = input("请输入邮箱:") 38 user_dict = {"name":name, 39 "age":age, 40 "tel":tel, 41 "email":email} 42 43 #把键值对放入列表中 44 card_list.append(user_dict) 45 46 47 def show_all(): 48 49 """ 50 定义一个显示全部内容的函数,如果列表有信息就遍历,没信息提示用户输入 51 52 """ 53 54 if len(card_list)!=0: 55 56 make_tab() 57 58 # 遍历列表得到用户信息字典 59 for user_dict in card_list: 60 61 # 得到用户各项信息的值 (和表头对齐) 62 # for key in ("name","age","tel","email"): 63 # print("%s\t\t" % user_dict[key] ,end="") 64 print("%s\t\t" % user_dict["name"],end="") 65 print("%s\t\t" % user_dict["age"],end="") 66 print("%s\t" % user_dict["tel"],end="") 67 print("%s\t" % user_dict["email"],end="") 68 print() 69 print("="*50) 70 71 else: 72 print("当前没有任何信息,请添加新增名片") 73 74 75 76 #查询名片 77 def search_card(): 78 """ 79 遍历card_list得到用户键值对,再把键值对中的name的值与用户 80 输入内容作比较,如果匹配到了则返回用户信息,如果没匹配到则 81 提示用户没搜索到 82 """ 83 find_name = input("请输入您要查找的姓名:") 84 85 for key_value in card_list: 86 87 if key_value["name"] == find_name: 88 make_tab() 89 # for key in ("name","age","tel","email"): 90 # print("%s\t\t" % key_value[key] ,end="") 91 print("%s\t\t" % key_value["name"],end="") 92 print("%s\t\t" % key_value["age"],end="") 93 print("%s\t" % key_value["tel"],end="") 94 print("%s\t" % key_value["email"],end="") 95 print() 96 print("="*50) 97 98 # 处理名片(修改或者删除) 99 100 deal_cards(key_value) 101 break 102 103 else: 104 print("您所查找的名片不存在!") 105 106 107 108 def deal_cards(key_value): 109 """ 110 找到用户后,对名片进行修改或者删除操作 111 :key_value: 在查找函数中,查找到的用户信息字典 112 """ 113 user_input_str = input("请选择您要进行的操作: [1]修改名片 [2]删除名片 [0]返回上一层") 114 if user_input_str == "1": 115 #修改名片 116 # key_value["name"]= input("姓名:") 117 # key_value["age"]= input("年龄:") 118 # key_value["email"]= input("邮箱:") 119 # key_value["tel"]= input("电话:") 120 121 key_value["name"] = user_input_info(key_value["name"],input("姓名")) 122 key_value["age"] = user_input_info(key_value["age"],input("年龄")) 123 key_value["tel"] = user_input_info(key_value["tel"],input("电话")) 124 key_value["email"] = user_input_info(key_value["email"],input("邮箱")) 125 print("修改成功!") 126 127 elif user_input_str == "2": 128 #删除名片 129 card_list.remove(key_value) 130 print("删除成功!") 131 132 133 def user_input_info(dict_value,input_value): 134 """ 135 判断用户的输入的值,如果不是空则修改原值。否则返回原值 136 :param dict_value: 字典中原有的值 137 :param input_value: 用户输入的用于修改的值 138 :return: 修改后的值 139 """ 140 if len(input_value) == 0: 141 return dict_value 142 else: 143 return input_value
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash