在零售行业中,门店的商品信息管理是核心环节之一。本文将以花店场景为例,详细讲解如何使用 Python开发 一款轻量级的花品信息管理系统,实现用户登录验证、花品信息的增删改查、排序与折扣设置等核心功能,帮助初学者理解Python基础语法、数据结构及函数式编程的应用。
本系统采用Python原生语法开发,无第三方框架依赖,核心设计思路如下:
数据存储:使用列表嵌套字典的方式存储用户信息和花品信息,结构清晰且易于操作;功能拆分:将登录、显示、新增、删除、修改、排序、查询等功能拆分为独立函数,遵循“单一职责”原则;交互逻辑:通过控制台交互实现用户操作,采用循环结构保证程序持续运行,同时增加输入校验提升用户体验。首先定义用户信息和花品信息的基础数据结构,列表用于存储多条数据,字典用于描述单条数据的属性:
# 用户数据(用户名、密码、姓名) user1 = {"用户名": "admin", "密码": "123", "姓名": "店长"} userlist = [user1] # 花品数据(编号、名称、价格、折扣) commodity1 = {"编号": "1", "名称": "向日葵", "价格":20.0, "折扣": 9.0} commodity2 = {"编号": "2", "名称": "郁金香", "价格":32.0, "折扣": 8.5} commodity3 = {"编号": "3", "名称": "康乃馨", "价格":42.0, "折扣": 8.8} commodity4 = {"编号": "4", "名称": "满天星", "价格":25.0, "折扣": 9.0} commoditylist = [commodity1, commodity2, commodity3, commodity4]
python
运行
12345678910 2.2 登录验证功能登录功能是系统的安全入口,实现了以下核心逻辑:
最多3次密码错误尝试,超过则锁定用户;遍历用户列表校验账号密码,匹配成功则登录;返回登录状态,作为后续功能访问的前置条件。def login(): msg = "失败" count = 0 while True: print("********************************************") print("* 欢迎使用花店信息管理系统 *") print("*********************************************") print("请先登录!") uname = input("请输入账号:") upwd = input("请输入密码:") for user in userlist: if uname == user["用户名"] and upwd == user["密码"]: print("登录成功,欢迎你", user["姓名"]) msg = "成功" break if msg == "失败": count += 1 if count < 3: print("用户名密码错误!请重新登录", "输入第", count, "次") else: print("用户已锁定!") break else: break return msg
python
运行
12345678910111213141516171819202122232425 2.3 花品信息核心操作 (1)显示花品列表遍历花品列表, 格式化 输出所有花品的编号、名称、价格、折扣信息,为用户提供直观的数据展示:
def showProduct(): print("----------花品信息----------") print("-编号----名称----价格----折扣-") for commodity in commoditylist: print("-" + commodity["编号"] + "----" + commodity["名称"] + "-----" + str(commodity["价格"]) + "-----" + str( commodity["折扣"])) print("----------------------------")
python
运行
1234567 (2)新增花品信息自动生成新花品编号(基于现有最大编号+1),接收 用户输入 的名称和价格,默认折扣为0,新增后自动刷新显示列表:
def addProduct(): list1 = [] for num in commoditylist: list1.append(int(num["编号"])) num = str(max(list1) + 1) print("----------添加新花品----------") mc = input("请输入花品名称:") jg = float(input("请输入花品价格:")) zk = 0 newProduct = {"编号": num, "名称": mc, "价格": jg, "折扣": zk} commoditylist.append(newProduct) print("商品" + mc + "添加成功") print("-------------------------------") showProduct()
python
运行
1234567891011121314 (3)删除花品信息支持按编号删除花品,增加输入校验:若编号不存在,提供“取消/继续”选项,提升 交互 友好性:
def delproduct(): showProduct() while True: msg = 0 num = input("请输入要删除花品的编号") for product in commoditylist: if num == product["编号"]: print("商品", product["名称"], "正在删除") commoditylist.remove(product) print("删除成功!") msg = 1 break if msg == 0: print("输入的花品编号不正确,请重新输入") jx = input("取消输入请按1,继续请按2") if jx == "1": break elif jx == "2": continue else: print("输入错误请重新输入") else: showProduct() break
python
运行
123456789101112131415161718192021222324 (4)折扣与价格修改分别实现按名称修改折扣、按编号修改价格的功能,逻辑与删除功能 类 似,核心是通过遍历列表找到目标花品并更新对应属性:
# 设置花品折扣 def setDiscount(): while True: mag = 0 name = input("请输入要更改折扣的花品名称") for x in commoditylist: if name == x["名称"]: zk = float(input("请输入要设置产品的折扣:")) x["折扣"] = zk print(x["名称"] + "的折扣为:" + str(zk)) mag = 1 break if mag == 0: print("输入的花品名称不存在,请重新输入") jx = input("取消输入请按1,继续请按2") if jx == "1": break elif jx == "2": continue else: print("输入错误请重新输入") else: showProduct() break # 修改花品价格 def setPrice(): while True: mag = 0 num = input("请输入要更改价格的花品编号") for x in commoditylist: if num == x["编号"]: jg = float(input("请输入要设置产品价格")) x["价格"] = jg print(x["名称"] + "的价格为:" + str(jg)) mag = 1 break if mag == 0: print("输入的花品编号不存在,请重新输入") jx = input("取消输入请按1,继续请按2") if jx == "1": break elif jx == "2": continue else: print("输入错误请重新输入") else: showProduct() break
python
运行
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 (5)价格排序与信息查询 价格排序:支持升序/降序两种方式,先提取所有价格去重后排序,再按排序后的价格匹配花品并输出;信息查询:支持按编号或名称查询,找到目标花品后立即输出并返回,未找到则提示无匹配信息。# 价格排序 def sort(): choice = int(input("请选择升序或者降序(1、升序 2、降序)")) clist = [] for commodity in commoditylist: clist.append(commodity["价格"]) clist = list(set(clist)) if choice == 1: newlist = sorted(clist) for price in newlist: for product in commoditylist: if price == product["价格"]: print("-" + product["编号"] + "----" + product["名称"] + "-----" + str( product["价格"]) + "-----" + str(product["折扣"])) if choice == 2: newlist = sorted(clist, reverse=True) for price in newlist: for product in commoditylist: if price == product["价格"]: print("-" + product["编号"] + "----" + product["名称"] + "-----" + str( product["价格"]) + "-----" + str(product["折扣"])) # 花品查询 def searchProduct(): choice = int(input("请选择查询方式(1、编号 2、花品名称)")) if choice == 1: num = input("请输入要查询的花品编号") for product in commoditylist: if num == product["编号"]: print("-" + product["编号"] + "----" + product["名称"] + "-----" + str( product["价格"]) + "-----" + str(product["折扣"])) return print("未找到该编号对应的花品信息") elif choice == 2: name = input("请输入要查询的花品名称") for product in commoditylist: if name == product["名称"]: print("-" + product["编号"] + "----" + product["名称"] + "-----" + str( product["价格"]) + "-----" + str(product["折扣"])) return print("未找到该花品名称对应的花品信息") else: print("输入有误,请重新输入")
python
运行
12345678910111213141516171819202122232425262728293031323334353637383940414243 2.4 主菜单与程序入口通过双层循环实现程序的持续运行:外层循环控制登录流程,登录成功后进入内层循环(主菜单),用户选择对应功能编号执行操作,输入8则退出系统。
while True: result = login() if result == "成功": while True: print("---------------主菜单---------------") print("-1、显示所有花品信息") print("-2、增加花品信息") print("-3、删除花品") print("-4、更改花品折扣") print("-5、更改花品价格") print("-6、根据价格排序花品") print("-7、根据编号或者花品名字查询花品") print("-8、退出") choice = int(input("请输入您的选项(1-8)")) if choice == 1: showProduct() elif choice == 2: addProduct() elif choice == 3: delproduct() elif choice == 4: setDiscount() elif choice == 5: setPrice() elif choice == 6: sort() elif choice == 7: searchProduct() elif choice == 8: print("------------系统已退出") break else: print("没有此功能请重新输入") continue
python
运行
12345678910111213141516171819202122232425262728293031323334本系统作为基础版本,可从以下方向优化升级:
数据持久化:将列表数据存储到文件(如JSON、CSV)或数据库(如MySQL、SQLite),避免程序重启后数据丢失;用户管理:增加用户注册、密码修改、权限分级(如店长/店员)功能;输入校验增强:对价格、折扣等数值型输入增加范围校验(如折扣0-10,价格大于0);界面优化:使用Tkinter、PyQt等库开发图形化界面,提升操作体验;功能扩展:增加订单管理、库存统计、销售报表等功能,完善门店管理体系。本文通过花店花品信息管理系统的开发案例,讲解了Python列表、字典、函数、循环、条件判断等基础语法的综合应用。该系统虽简易,但覆盖了数据存储、交互逻辑、功能拆分等核心开发思想,适合Python初学者入门学习。通过对系统的扩展优化,可进一步掌握文件操作、数据库连接、GUI开发等进阶技能,为开发更复杂的应用打下基础。
相关知识
Python花店花品信息管理系统
(开题)flask框架仓库物流信息管理系统设计和实现(程序+论文+python)
flask框架花店管理系统(毕设源码+论文)
python毕设畜牧管理系统程序+论文
花店门店管理系统【花店门店管理系统平台】
java毕业设计鲜花管理系统的设计与实现(springboot+mysql+jdk1.8+meven)
基于python的在线花店管理系统的设计与开发
花店连锁门店管理系统【花店连锁门店管理系统平台】
计算机毕业设计django+vue花与梦网上花店管理系统【开题+程序+论文】
基于jsp的网上花店管理系统的设计与实现 毕业论文.doc
网址: 花店花品信息管理系统开发实战:Python实现简易门店管理系统 https://m.huajiangbk.com/newsview2590508.html
| 上一篇: 银川兴庆区香渔王子哪有花店,51 |
下一篇: 法国浪漫的花店名字,顾客至上,法 |