一个干净的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

相关文章

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

Python实现高效地读写大型文件

《Python实现高效地读写大型文件》Python如何读写的是大型文件,有没有什么方法来提高效率呢,这篇文章就来和大家聊聊如何在Python中高效地读写大型文件,需要的可以了解下... 目录一、逐行读取大型文件二、分块读取大型文件三、使用 mmap 模块进行内存映射文件操作(适用于大文件)四、使用 pand

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

Python xmltodict实现简化XML数据处理

《Pythonxmltodict实现简化XML数据处理》Python社区为提供了xmltodict库,它专为简化XML与Python数据结构的转换而设计,本文主要来为大家介绍一下如何使用xmltod... 目录一、引言二、XMLtodict介绍设计理念适用场景三、功能参数与属性1、parse函数2、unpa

Python中使用defaultdict和Counter的方法

《Python中使用defaultdict和Counter的方法》本文深入探讨了Python中的两个强大工具——defaultdict和Counter,并详细介绍了它们的工作原理、应用场景以及在实际编... 目录引言defaultdict的深入应用什么是defaultdictdefaultdict的工作原理

Python中@classmethod和@staticmethod的区别

《Python中@classmethod和@staticmethod的区别》本文主要介绍了Python中@classmethod和@staticmethod的区别,文中通过示例代码介绍的非常详细,对大... 目录1.@classmethod2.@staticmethod3.例子1.@classmethod

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.