一个干净的python项目(没连数据库啥的)

2024-08-24 18:28

本文主要是介绍一个干净的python项目(没连数据库啥的),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

希望你们写代码有用(直接可以拿来用,我只要您的一个关注和赞赞)
#用户数据
user1={"用户名":"aaa","密码":"123","姓名":"热孜娅","类型":"客户"}
user2={"用户名":"bbb","密码":"456","姓名":"那迪尔","类型":"客户"}
user3={"用户名":"ccc","密码":"789","姓名":"艾斯卡尔","类型":"管理员"}
usersList=[user1,user2,user3]
#菜品数据
p1={"编号":"1001","名称":"牛肉","价格":30,"库存":7,"更新人":"ccc"}
p2={"编号":"1002","名称":"千张","价格":10,"库存":122,"更新人":"ccc"}
p3={"编号":"1003","名称":"土豆","价格":12,"库存":103,"更新人":"ccc"}
p4={"编号":"1004","名称":"汽水","价格":6,"库存":34,"更新人":"ccc"}
p5={"编号":"1008","名称":"啤酒","价格":4,"库存":9,"更新人":"ccc"}
pruductsList=[p1,p2,p3,p4,p5]currentUser={} #当前用户#-------------------------------功能函数
#验证管理员
def checkAdmin(fun):def wrapper():if currentUser["类型"]=="管理员":fun()else:print("没有权限")return wrapper#登录
def login():global currentUserresult="失败"uname=input("请输入用户名:")upwd=input("请输入密码:")for user in usersList:if uname==user["用户名"] and upwd==user["密码"]:currentUser=userresult="成功"return result#显示菜品列表
def listAll():print("--编号----名称----价格----库存")for product in pruductsList:print("-"+product["编号"]+"----"+product["名称"]+"-----"+str(product["价格"])+"-----"+str(product["库存"]))#
def getOneByName():name = input("请输入要查询的菜品名称")exist=0print("--编号----名称----价格----库存")for product in pruductsList:if name==product["名称"]:exist=1print("-"+product["编号"]+"----"+product["名称"]+"-----"+str(product["价格"])+"-----"+str(product["库存"]))if exist==0:print("未查询到该菜品")#菜品上架(仅限管理员)
@checkAdmin  #这个装饰器相当于 add=checkAdmin(add)
def add():#生成新编号lista=[]for p in pruductsList:lista.append(int(p["编号"]))newNum=str(max(lista)+1)updatedPerson=currentUser["用户名"]name=input("请输入菜品名称:")price = input("请输入菜品单价:")stock = input("请输入菜品库存:")newPro={"编号":newNum,"名称":name,"价格":price,"库存":stock,"更新人":updatedPerson}pruductsList.append(newPro)print(newPro["名称"] + "上架成功!")listAll()#
@checkAdmin  #这个装饰器相当于 add=checkAdmin(add)
def delete():num=input("请输入要下架的菜品编号:")exist=0 #是否存在for p in pruductsList:if num==p["编号"]:exist=1pruductsList.remove(p)print(p["名称"]+"下架成功!")if exist==0:print("没有此菜品,下架失败!")listAll()#设置菜品库存与价格(仅限管理员)
@checkAdmin  #这个装饰器相当于 add=checkAdmin(add)
def update():while True:  #不存在或输入错误时让重新输入exist=0#是否存在num=input("请输入要更新的菜品编号")for product in pruductsList:if num==product["编号"]:exist=1updata1=input("你要更新的是:1 价格 2 库存")updata2 = input("更新的值为:")if updata1=="1":product["价格"]=updata2elif updata1 == "2":product["库存"]=updata2print("---菜品"+product["名称"]+"已经更新成功")break  #菜品更新完之后不需要再循环菜品了了if exist==0:print("菜品不存在")choice=input("取消请按 1  重新输入请按 2 :")if choice=="1":breakelse:continueelse:  #不是0的时候,更新完了要退出更新break #外层循环停止#库存预警
def warning():exist=0print("一下菜品需要补充食材")print("--编号----名称----价格----库存")for product in pruductsList:if int(product["库存"]) < 10:exist=1print("-"+product["编号"]+"----"+product["名称"]+"-----"+str(product["价格"])+"-----"+str(product["库存"]))if exist==0:print("库存充足")#按照价格排序
def sortByPrice():choice=input("请选择升序或降序(1.升序 2.降序)")plist=[]for product in pruductsList:plist.append(product["价格"])plist=list(set(plist)) #价格去重if choice=="1":plist.sort()else:plist.sort(reverse=True)print("--编号----名称----价格----库存")for price in plist:for product in pruductsList:if price==product["价格"]:print("-" + product["编号"] + "----" + product["名称"] + "-----" + str(product["价格"]) + "-----" + str(product["库存"]))#显示主菜单,并调用相关功能
print("******************************51菜品管理系统 1.0**********************************")
while True:    #为了重复登录result1=login()if result1=="失败":print("登录失败,请重新登录")continue#业务功能while True:print("--------功能列表---------")print("1.显示菜品列表")print("2.根据名称查询菜品信息")print("3.菜品上架")print("4.菜品下架")print("5.设置菜品库存和价格")print("6.库存预警")print("7.按价格排序显示")print("8.退出")choice=input("-----请输入功能编号(1-8):")if choice=="1":listAll()elif choice=="2":getOneByName()elif choice=="3":add()elif choice=="4":delete()elif choice=="5":update()elif choice=="6":warning()elif choice=="7":sortByPrice()elif choice=="8":break  #内层循环退出,退到登录页面else:print("没有功能,请重新选择!")continue

这篇关于一个干净的python项目(没连数据库啥的)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1103256

相关文章

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

mysql数据库重置表主键id的实现

《mysql数据库重置表主键id的实现》在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,本文主要介绍了mysql数据库重置表主键id的实现,具有一定的参考价值,感兴趣的可以了... 目录关键语法演示案例在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,当我们

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步