python-名片管理系统
一、系统需求
- 目的一、回顾前面学过的变量、流程控制、函数、模块等
- 程序启动,显示名片和欢迎界面,并提示用户进行操作
- 用户选择不同的功能,执行不同的操作
- 用户名片中要记录的信息:姓名、电话、联系方式、邮件
- 用户查询到指定的名片,可以进行修改、删除操作
二、步骤
- 框架搭建
- 新增名片
- 显示所有名片
- 查询名片
- 查询成功后修改、删除名片
01、框架搭建
1、创建一个名片管理系统的文件夹,把所有的代码写到此文件里
2、编写一个主程序,实现用户输入和判断的操作
在文件夹中创建一个cards_main.py并保存
每一次启动通过这个主函数启动
3、新建一个cards_tools.py保存所有的名片功能函数;实现对名片的增删改查等操作
02、编写框架
2.1 主函数入口
while True: # 显示系统菜单 action = input("请选择操作功能:") print("您的选择操作是:%s" % action) #不带分号 #根据用户的输入进行后续的操作 if action in ["1","2","3"]: pass elif action == "0": print("欢迎再次使用") break else: print("输入错误,请重新输入")
1、字符串判断:使用in针对列表判断,避免使用or或if拼接复杂的逻辑条件
if action in ["1","2","3"]:
2、没有使用int类型,避免用户一旦输入的不是数字,导致程序运行出错
2.2 在cards_tools中增加四个函数,分别对应不同的功能,代码如下:
# -*- coding: utf-8 -*- def show_menu(): """显示菜单""" pass def new_card(): """新建名片""" print("_" *50) print("新建名单") def show_all(): """显示全部""" print("_"*50) print("显示全部") def search_card(): """搜索名片""" print("_"*50) print("搜索功能") def delete_card(): """删除名片""" print("_"*50) print("删除功能")
2.3 在card-main.py中使用import导入cards_tools模块,并修改while循环中的代码
# -*- coding: utf-8 -*-
#导入模块
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("输入错误,请重新输入")
03、完成函数功能
1、show_menu函数
def show_menu(): """显示菜单""" print("_"*50) print("欢迎使用名片管理系统") print("") print("1.新建名片") print("2.显示全部") print("3.查询名片") print("") print("0.退出系统") print("_"*50)
运行结果:【但是输入后,还会再次出现这个提示】
2、名片的数据结构用什么来存【列表、字典、元组、集合】
- 使用字典记录每一个名片
- 使用列表统一记录所有名片字典
- 列表是用[]来进行存放元素,中间用,隔开,里面的元素基本都是都一类型的
- 字典:字典的表示方式 {key1:value1, key1:value1,key1:value1}键值对存放的
-
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可,元组的元素不能修改
在cards_tools.py的文件顶部创建一个列表变量
#所有名片记录列表
card_lst = []
2、new_card函数
- 提示用户依次输入名片信息
- 将名片信息保存到一个字典中
- 将字典添加到列表中
- 提示名片添加完成
代码如:
def new_card(): """新建名片""" print("_" *50) print("新建名单") #1、提示用户一次输入名片信息 name = input("请输入姓名:") phone = input("请输入电话:") qq = input("请输入qq号码:") email = input("请输入邮箱:") #2、将名片信息保存到一个字典中 card_dict = {"name":name, "phone":phone, "qq":qq, "email":email } #3、将用户字典添加到列表中 card_lst.append(card_dict) print(card_lst) #4、提示添加成功 print("成功添加 %s 的名片 " % card_dict["name"])
显示效果不好:优化如下
def show_all(): """显示全部""" print("_"*50) print("显示全部") # for card_dict in card_lst: # print(card_dict) #打印表头 for name in ["姓名","电话","qq邮箱","邮箱"]: print(name ,end="\t\t") print("") #打印分割线 print("_"*50) for card_dict in card_lst: print(f"%s\t\t%s\t\t%s\t\t%s" %(card_dict["name"], card_dict["phone"],card_dict["qq"],card_dict["email"]))
3、增加没有名片记录
#1、判断是否有名片记录 if len(card_lst) == 0: print("提示:没有任何记录") return
4、查询功能
- 提示用户要搜索的姓名
- 根据用户输入的姓名遍历列表
- 搜索到指定的名片后,执行后续的操作
def search_card(): """搜索名片""" print("_"*50) print("搜索功能") #1、提示用户输入要搜索的姓名 find_name = input("请输入要搜索的姓名:") #2、遍历字典 for card_dict in card_lst: if card_dict["name"] == find_name: print("姓名\t\t电话\t\tqq\t\t邮箱\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"]) print("_"*50) break else: print("对不起,没找到 %s" %find_name)
5、修改功能
def modify_card(): global card_lst mod_name = input("请输入要修改的名字:") for temp in card_lst: if mod_name == temp["name"]: temp["name"] = input("请输入新的姓名:") temp["phone"] = input("请输入电话:") temp["qq"] = input("qq") temp["email"] = input("email") print("修改完成") return print("查无此人")
6、删除功能
def delete_card(): global card_lst show_all() del_name = input("请输入要删除的姓名:") for temp in card_lst: if del_name == temp["name"]: card_lst.remove(temp) break print("% 名片已经删除成功" %temp["name"])
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具