Python超市商品管理系统

系统需要用户先登录,再进行操作,其中包含一下功能菜单

1、显示商品列表
2、增加商品信息
3、删除商品
4、设置商品折扣
5、修改商品价格信息
6、退出

a、使用列表嵌套字典的方式保存用户数据(包含用户名、密码、姓名);
b、使用列表嵌套字典的方式保存商品数据(包含编号、名称、价格、折扣);
c、编写用户登录的函数,返回登录结果
d、循环提示菜单,业务完毕时返回主菜单,退出时回到登录页面;
e、将功能菜单中的业务功能各自编写到函数中
f、用户选择不同业务编号时,调用已经

# -*- coding:utf-8 -*-
# @Author : 小红牛
# 微信公众号:WdPython
# a、使用列表嵌套字典的方式保存用户数据(包含用户名、密码、姓名)
user1 = {"用户名": "111", "密码": "123", "姓名": "刘皇叔"}
user2 = {"用户名": "222", "密码": "123", "姓名": "李狗蛋"}
userlist = [user1, user2]# b、使用列表嵌套字典的方式保存商品数据(包含编号、名称、价格、折扣)
commodity1 = {"编号": "1001", "名称": "苹果", "价格": 8, "折扣": 1}
commodity2 = {"编号": "1002", "名称": "香蕉", "价格": 6, "折扣": 1}
commodity3 = {"编号": "1003", "名称": "西瓜", "价格": 5, "折扣": 1}
commoditylist = [commodity1, commodity2, commodity3]# 登录
def login():msg = "失败"count = 0while True:uname = input("请输入账号:")upwd = input("请输入密码:")for user in userlist:if uname == user["用户名"] and upwd == user["密码"]:print("登录成功,欢迎你", user["姓名"])msg = "成功"breakif msg == "失败":count += 1if count < 3:print("用户名密码错误!请重新登录", "输入第", count, "次")else:print("用户已锁定!")breakelse:breakreturn msg# 1、显示商品列表
def showProduct():print("----------产品信息----------")print("-编号----名称----价格----折扣-")for commodity in commoditylist:print("-" + commodity["编号"] + "----" + commodity["名称"] + "-----" + str(commodity["价格"]) + "-----" + str(commodity["折扣"]))print("----------------------------")# 2、增加商品信息
def addProduct():list1 = []for num in commoditylist:list1.append(int(num["编号"]))num = str(max(list1) + 1)print("----------添加商品信息----------")mc = input("请输入产品名称:")jg = float(input("请输入产品价格:"))zk = 1newProduct = {"编号": num, "名称": mc, "价格": jg, "折扣": zk}commoditylist.append(newProduct)print("商品" + mc + "添加成功")print("-------------------------------")showProduct()# 3、删除商品
def delproduct():showProduct()while True:msg = 0num = input("请输入要删除商品的编号")for product in commoditylist:if num == product["编号"]:print("商品", product["名称"], "正在删除")commoditylist.remove(product)print("删除成功!")msg = 1breakif msg == 0:print("输入的产品编号不正确,请重新输入")jx = input("取消输入请按1,继续请按2")if jx == 1:breakelif jx == 2:continueelse:print("输入错误请重新输入")else:showProduct()break# 4、设置商品折扣
def setDiscount():while True:mag = 0name = input("请输入要设置折扣的商品名称")for x in commoditylist:if name == x["名称"]:zk = float(input("请输入要设置产品的折扣(0.1-1)"))x["折扣"] = zkprint(x["名称"] + "的折扣为:" + str(zk))mag = 1breakif mag == 0:print("输入的商品名称不存在,请重新输入")jx = input("取消输入请按1,继续请按2")if jx == "1":breakelif jx == "2":continueelse:print("输入错误请重新输入")else:showProduct()break# 5、修改商品价格信息
def setPrice():while True:mag = 0num = input("请输入要设置价格的商品编号")for x in commoditylist:if num == x["编号"]:jg = float(input("请输入要设置产品价格"))x["价格"] = jgprint(x["名称"] + "的价格为:" + str(jg))mag = 1breakif mag == 0:print("输入的商品编号不存在,请重新输入")jx = input("取消输入请按1,继续请按2")if jx == "1":breakelif jx == "2":continueelse:print("输入错误请重新输入")else:showProduct()break# 6、根据价格排序显示商品列表
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["折扣"]))else:newlist = sorted(clist, reverse=True)for price in newlist:for product in commoditylist:if price == product["价格"]:print("-" + product["编号"] + "----" + product["名称"] + "-----" + str(product["价格"]) + "-----" + str(product["折扣"]))# 主程序开始
while True:result = login()if result == "成功":while True:print("*********主菜单*********")print("1、显示商品列表")print("2、增加商品信息")print("3、删除商品")print("4、设置商品折扣")print("5、修改商品信息")print("6、根据价格排序商品")print("7、退出")print("*********************")choice = int(input("请输入您的选项(1-7)"))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:print("------------系统已退出")breakelse:print("没有此功能请重新输入")continue

完毕!!感谢您的收看

----------★★历史博文集合★★----------

我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具 NumPy Pygame

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/792869.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#/WPF Inno Setup打包程序

Inno Setup介绍 Inno Setup 是一个免费的 Windows 安装程序制作软件。第一次发表是在 1997 年&#xff0c;现在已经更新到Inno Setup 6了。Inno Setup是一个十分简单实用的打包小工具&#xff0c;可以按照我们自己的意愿设置功能&#xff0c;稳定性也很好。 官方网址&#xff1…

F - 创新型机器猫 高性能战斗机器人(遇到过的题,做个笔记)

我的代码&#xff1a; #include <iostream> #include <vector> using namespace std; int main() {string str;cin >> str;int dxy[][2] { {0,1},{1,0},{0,-1},{-1,0} }; //设置偏移量&#xff0c;按照右转顺序&#xff1a;北->东->南->西int now…

mvn怎么安装jar

要在 Maven 项目中安装一个 JAR 文件到本地 Maven 仓库&#xff0c;您可以使用 Maven 的 install:install-file 命令。这个命令可以将指定的 JAR 文件安装到本地 Maven 仓库中&#xff0c;以便在项目中引用。 下面是使用 install:install-file 命令安装 JAR 文件的基本语法&am…

Spring Boot 集成 RabbitMQ(一)

1、RabbitMQ 和 SpringBoot 的基础概念 RabbitMQ 是一个开源的 MQ &#xff08;Message Queue&#xff0c;消息队列&#xff09; 客户端服务器实现&#xff0c;遵循 AMQP(Advanced Message Queuing Protocol)协议。它允许应用发送消息并不直接传递到目标对象&#xff0c;而是通…

RabbitMQ3.7.8集群分区(脑裂现象)模拟及恢复处置全场景测试

测试环境准备: MQ服务器集群地址&#xff0c;版本号为3.7.8&#xff1a; 管理控制台地址:http://173.101.4.6:15672/#/queues 集群状态 rabbitmqctl cluster_status 集群操作相关命令: 创建一个RabbitMQ集群涉及到如下步骤&#xff1a; 安装RabbitMQ&#xff1a; 在每台要在集…

【opencv】教程代码 —photo

将彩色图像转换为去色图像&#xff08;灰度图像&#xff09;和 颜色增强图像 HDR 图像合成&#xff0c;并同时执行色调映射和曝光融合非真实感渲染&#xff08;NPR&#xff09;正常克隆、混合克隆、单色传递、局部颜色改变、局部照明改变和纹理平滑 1. decolorization将彩色图像…

微信小程序 电影院售票选座票务系统5w7l6

uni-app框架&#xff1a;使用Vue.js开发跨平台应用的前端框架&#xff0c;编写一套代码&#xff0c;可编译到Android、小程序等平台。 框架支持:springboot/Ssm/thinkphp/django/flask/express均支持 前端开发:vue.js 可选语言&#xff1a;pythonjavanode.jsphp均支持 运行软件…

竞赛 Yolov安全帽佩戴检测 危险区域进入检测 - 深度学习 opencv

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; Yolov安全帽佩戴检测 危险区域进入检测 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 该项目较为新颖&am…

分布式数据库中间件 Mycat 和 ShardingSphere 对比

Mycat 和 ShardingSphere 都是流行的分布式数据库中间件&#xff0c;都可以用于实现数据分片、读写分离和分布式事务等功能&#xff0c;但它们在设计理念、特点和功能实现上有一些区别 1. 设计理念&#xff1a; Mycat&#xff1a; 基于 MySQL 协议的代理式架构&#xff0c;主要…

前端进阶之最长递增子序列算法和vue.js中的Diff算法

前端进阶之最长递增子序列算法和vue.js中的Diff算法 最长递增子序列 什么是子序列 子序列的概念派生自数组&#xff0c;通过删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序&#xff0c;得到的数组就是原数组的子序列。 例如&#xff0c;[3,6,2,7]…

Flutter仿Boss-4.短信验证码界面

效果 简述 在移动应用开发中&#xff0c;处理短信验证码是确保用户身份验证和安全性的重要步骤。本文将介绍如何使用Flutter构建一个短信验证码界面&#xff0c;让用户输入通过短信发送到他们手机的四位验证码。 依赖项 在这个项目中&#xff0c;我们将使用以下依赖项&#…

vue快速入门(六)v-else和v-else-if

注释很详细&#xff0c;直接上代码 上一篇 新增内容 v-else-if用法v-else用法 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-s…

枚举类练习

练习一 案例&#xff1a;使用枚举类实现单例模式 package chapter08_oop3_teacher.src.com.atguigu10._enum.exer1;/*** ClassName: BankTest1* Description:** Author 尚硅谷-宋红康* Create 15:05* Version 1.0*/ public class BankTest1 {public static void main(String[]…

Excel、PowerQuery 和 ChatGPT 终极手册(上)

原文&#xff1a;Ultimate ChatGPT Handbook for Enterprises 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 序言 在不断发展的数据管理和分析领域中&#xff0c;掌握 Excel 的查找功能不仅是一种技能&#xff0c;更是高效数据处理的基石。《使用 Power Query 和 Ch…

论文阅读:Walk These Ways: 通过行为多样性调整机器人控制以实现泛化

Walk These Ways: 通过行为多样性调整机器人控制以实现泛化 摘要&#xff1a; 通过学习得到的运动策略可以迅速适应与训练期间经历的类似环境&#xff0c;但在面对分布外测试环境失败时缺乏快速调整的机制。这就需要一个缓慢且迭代的奖励和环境重新设计周期来在新任务上达成良…

Django模板层——三种自定义模板simple_tag、inclusion_tag、filter的用法

目录 1. 前言 2. 前置操作 3. simple_tag 3.1 注意点 4. inclusion_tag 5. filter 6. 结尾 1. 前言 在前后端不分离的模式中&#xff0c;Django的模板语法尤为重要&#xff0c;我们可以动态传入变量&#xff0c;并在前端HTML中进行展示。在变量展示时&#xff0c;会有一…

JavaWeb中的Servlet是什么?怎么使用?

文章目录 一、什么是Servlet二、Servlet的基本内容1、Servlet的作用2、Servlet接口3、Servlet接口实现类4、Servlet接口实现类开发步骤5、Servlet对象生命周期6、HttpServletResquest接口7、HttpServletResponse接口8、请求对象和响应对象流程图9、请求对象和响应对象生命周期1…

vulhub中Apache Solr 远程命令执行漏洞复现(CVE-2019-0193)

Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发&#xff0c;主要基于 HTTP 和 Apache Lucene 实现。此次漏洞出现在Apache Solr的DataImportHandler&#xff0c;该模块是一个可选但常用的模块&#xff0c;用于从数据库和其他源中提取数据。它具有一个功能&#…

vue给input密码框设置眼睛睁开闭合对于密码显示与隐藏

<template><div class"login-container"><el-inputv-model"pwd":type"type"class"pwd-input"placeholder"请输入密码"><islot"suffix"class"icon-style":class"elIcon"…

三子棋(C游戏)

文章目录 三子棋的描述思路关键代码运行代码 三子棋的描述 三子棋是一种民间传统游戏&#xff0c;又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏分为双方对战&#xff0c;双方依次在9宫格棋盘上摆放棋子&#xff0c;率先将自己的三个棋子走成一条线就视为胜利&#xff0c;…