当前位置:
首页 > temp > 简明python教程 >
-
微项目:名片管理系统
名片管理系统是一个检验Python初学者入门的实战小项目,它覆盖了Python程序设计的一些基础知识,其中包括有模块、输入/输出、while语句、if…elif…else语句、for循环语句、占位符/制表符、列表和字典等知识点。
功能描述
1. 程序启动,显示名片管理系统欢迎界面,并显示功能菜单,如下:
2. 用户选择不同数字进入与数字对应的功能
3. 根据功能选择,执行不同的功能
4. 名片需要记录用户的姓名、电话、QQ、邮件
5. 查询指定的名片,用户可以修改和删除名片
问题分析
准备两个文件,一个是cards_main.py保存主程序功能代码,它是程序的入口,另一个是cards_tools.py保存所有名片功能函数,对名片进行新增、显示、查询、修改、删除等功能操作。
主程序:cards_main.py
from card_manage_system import cards_tools while True: cards_tools.show_menu() action = input("请输入操作功能:") print("你输入的操作是:%s"%action) if action in ["1","2","3"]: if action == "1": cards_tools.new_card() elif action == "2": cards_tools.show_all() elif action == "3": cards_tools.search_card() elif action == "0": print("退出系统,欢迎下次使用名片管理系统") break else: print("输入错误,请重新输入")
名片功能函数:cards_tools.py
此模块包含show_menu()、new_card()、show_all()、search_card()、deal_card()、input_card_info()等六个不同的功能函数。以下是源代码:
card_list = [] def show_menu(): '''显示菜单''' print("*"*60) print("欢迎使用【名片管理系统】V1.0") print("1. 新建名片") print("2. 显示全部") print("3. 查询名片") print("0. 退出系统") print("*"*60) def new_card(): '''新建名片''' # 1.提示用户输入名片信息 name = input("请输入你的姓名:") number = int(input("请输入你的手机号码:")) QQnumber = int(input("请输入你的QQ号码:")) email = input("请输入你的邮箱;") # 2.使用用户输入的信息建立一个名片字典 card_dict = {"name":name,"phonenumber":number,"QQnumber":QQnumber,"email":email} # 3.将名片字典添加到列表中 card_list.append(card_dict) # 4.提示用户名片添加成功 print("添加%s的名片成功"%name) def show_all(): '''显示全部名片 ''' print('*'*60) print('显示所有名片') # 判断列表中是否存在名片,如果没有,提示用户并返回 if len(card_list) == 0: print("名片系统中没有名片") return # 打印表头 print("姓名\t\t手机号码\t\tQQ号码\t\t邮箱") # 遍历名片列表依次输出字典信息 for card_dict in card_list: print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], card_dict["phonenumber"], card_dict["QQnumber"], card_dict["email"])) def search_card(): '''查找名片''' # 1.提示用户输入要搜索的姓名 find_name = input("请输入你要查找的名片:") # 2.遍历名片列表,查询要搜索的姓名,如果没有搜索到,提示给用户 for card_dict in card_list: if card_dict["name"] == find_name: for name in ["姓名","手机号码","QQ号码","邮箱"]: print(name,end="\t\t") print("") print("-"*60) print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], card_dict["phonenumber"], card_dict["QQnumber"], card_dict["email"])) print("-"*60) deal_card(card_dict) break else: print("没有找到%s的名片"%find_name) def deal_card(find_dict): '''操作搜索到的名片''' print(find_dict) action_str = input("请选择要执行的操作【1】修改【2】删除") # 替换已经存在的键值对 if action_str == "1": find_dict["name"] = input_card_info(find_dict['name'],'姓名:') find_dict["phonenumber"] = input_card_info(find_dict['phonenumber'],'电话:') find_dict["QQnumber"] = input_card_info(find_dict['QQnumber'],'QQ:') find_dict["email"] = input_card_info(find_dict['email'],'邮箱:') print("%s的名片修改成功"%find_dict) elif action_str == "2": card_list.remove(find_dict) print("删除成功") def input_card_info(dict_value,tip_message): # 1.提示用户出入内容 result_str = input(tip_message) # 2.如果用户输入内容,则返回输入值,否则返回字典值 if len(result_str) > 0: return result_str else: return dict_value
出处:https://www.cnblogs.com/shujian/p/15832799.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数