本文主要是介绍一个干净的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项目(没连数据库啥的)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!