python自动售货机

说明

分享python实现自动售货一个小作业

主要功能

在这里插入图片描述

1.查询商品列表

在这里插入图片描述

2.购买商品

输入2进行购买商品,输入商品id和数量,可以选择不同商品,最后进行结账操作。
在这里插入图片描述

3.订单查询

可以有两种查询方式,全部查询和按时间条件查询
具体操作如下:
全部查询:

在这里插入图片描述

时间条件查询:

时间条件查询

4.退出

就按4直接退出23333

实现思路

其实就是参考路边的自动售货机贩卖饮料啥的,也有借鉴其他人的代码。改进的地方在于购买商品功能,能选择不同商品和数量,最后再结账。

定义了商品类、订单类
一开始初始化商品的数据

完整代码块

import time
print('欢迎光临')class Products:#商品类 定义名字、价格和存货数量def __init__(self, name, price, surplus_count):self.name = nameself.price = priceself.surplus_count = surplus_countclass Order:#订单类 包括购买物品名称、价格和时间 购买数量def __init__(self, name, price, buy_time,buy_count):self.name = nameself.price = priceself.buy_time = buy_timeself.buy_count = buy_count#字符串时间对比
def compare_time(time1,time2):s_time = time.mktime(time.strptime(time1,'%Y-%m-%d %H:%M:%S'))e_time = time.mktime(time.strptime(time2,'%Y-%m-%d %H:%M:%S'))return int(s_time) - int(e_time)#全局变量 商品列表
products_list = [Products("乐事薯片", 5, 5),Products("卫龙辣条", 3, 6),Products("可乐", 3, 2),Products("橙汁", 4, 5),Products("波力海苔", 6, 0),
]#订单list 存放订单数据
order_list = []#打印商品列表
def show_products_list():print("序号\t\t商品名称\t\t价格\t\t存货数量")i = 1for products in products_list:print("%d\t\t%s\t\t%s\t\t%s" % (i, products.name, products.price,products.surplus_count))i += 1#购买商品
def buy_products():buy_obj = {}while(True):op = input("1.购买商品 2.结账 3.退出 \n")if op == "1":products_id = int(input("请输入需要购买商品的序号:\n")) - 1if products_id > len(products_list) or products_id < 0:print("error!请输入正确的序号!")else:products = products_list[products_id]if products.surplus_count > 0:buy_count = int(input("请输入购买数量:"))#限制库存提示if buy_count> products.surplus_count:print("库存不足,请提醒补货!")else:buy_obj[products_id] = buy_count;else:print("库存不足,请提醒补货!")elif op == "2":need_pay_money = 0;for products_id in buy_obj.keys():buy_count = buy_obj[products_id]products = products_list[products_id]need_pay_money += products.price * buy_count;if need_pay_money<=0:return ;print ("您购买了:")print("商品名\t\t商品价格\t\t购买数量")for products_id in buy_obj.keys():buy_count = buy_obj[products_id]products = products_list[products_id]print("%s\t\t%s\t\t%s\n" % (products.name, products.price, buy_count))print ("需要支付金额:\t",need_pay_money)money = float(input("请输入支付金额:\n"))if money >= need_pay_money:#减库存for products_id in buy_obj.keys():buy_count = buy_obj[products_id]products = products_list[products_id]products.surplus_count = products.surplus_count - buy_countproducts_list[products_id] = products#生成订单timeArray = time.localtime(int(time.time()))order_list.append(Order(products.name, products.price * buy_count, time.strftime("%Y-%m-%d %H:%M:%S", timeArray),buy_count))#清空buy_obj.clear()#大于0才提示找零if money - need_pay_money >0:print("购买成功:找回%.2f元!" % (money - need_pay_money))else:print("购买成功!")break;else:print("支付金额不足!")elif op == "3":break;#打印订单列表
def show_order_list():is_query_all = int(input("请选择查询方式  1.查询全部销量 2.按时间查询销量\n"))query_order_list = []if is_query_all  == 2:time_str = time.localtime(int(time.time()))now_time = time.strftime("%Y-%m-%d %H:%M:%S", time_str)start_time = input("请输入开始时间 例如:"+now_time+"\n")end_time = input("请输入结束时间 例如:"+now_time+"\n")for order in order_list:compare_num1 = compare_time(order.buy_time,start_time)compare_num2 = compare_time(order.buy_time,end_time)if compare_num1>=0 and compare_num2<=0:query_order_list.append(order)i = 1;print("序号\t\t商品名\t\t支付金额\t\t购买数量\t\t购买时间")for order in query_order_list:print("%d\t\t%s\t\t%s\t\t%s\t\t%s" % (i, order.name, order.price,order.buy_count,order.buy_time))i += 1elif is_query_all  == 1:i = 1print("序号\t\t商品名\t\t支付金额\t\t购买数量\t\t购买时间")for order in order_list:print("%d\t\t%s\t\t%s\t\t%s\t\t%s" % (i, order.name, order.price,order.buy_count,order.buy_time))i += 1if __name__ == '__main__':while(True):n = input("请输入相应数字:1.查询商品列表 2.购买商品  3.销售查询------打印销售明细  4.退出\n")if n == "1":#显示商品列表方法show_products_list();elif n == "2":#购买商品buy_products();elif n == "3":#显示订单列表show_order_list();elif n == "4":print("已退出,欢迎下次光顾!")breakelse:print("输入错误,请重新输入!")

结尾

治愈焦虑,一步一个脚印!

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

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

相关文章

程序员的新出路:维护老项目?

1 张大胖刚进入公司&#xff0c;遇到了一个神奇的同事&#xff1a;何小痩。 别人工作都很忙&#xff0c; 何小痩工作似乎特别轻松&#xff0c;从来不加班&#xff0c;到点儿就回家。 张大胖向别人一打听&#xff0c;原来何小痩一直在维护一个老项目&#xff0c;维护了5年了。 …

为什么说程序员唯一出路是变成超级个体?

先来看一篇昨天AI新智能的报道&#xff0c; Midjourney 是 AI 绘画工具头部公司&#xff0c; 每年1亿美金的营收&#xff0c; 已经累计1000多万用户&#xff0c; 这么伟大的公司&#xff0c;仅仅只有11人。 Amazing! 你会震惊&#xff1a;真是家神奇的公司。 在 ChatGPT 新时代…

数据可视化①:dashboard展示大学生就业现状

大学生就业是和我们息息相关的话题&#xff0c;每一位大学生都关注着&#xff0c;我们常常在网络上看到有关大学生就业的话题&#xff0c;比如毕业季的一些讨论。在大一的创新创业课中&#xff0c;我们也了解到自己所学的专业和以后如何就业&#xff0c;往哪方面就业。但我们了…

基于数据挖掘的大学生智慧就业双向推荐系统

目 录 摘 要 I Abstract II 1 引言 1 1.1选题背景及目的意义 1 1.1.1选题背景 1 1.1.2目的及意义 1 1.2研究现状 2 1.3研究主要内容及结构 3 2 相关理论和开发工具 4 2.1 数据挖掘简述 4 2.2 相关数据挖掘算法概述 4 2.2.1关联规则 4 2.2.2 聚类算法 5 2.2.3 分类算法 5 2.3 文…

python项目之基于大数据分析算法的大学生就业系统

目录 一、使用技术及功能模块 二、具体操作及界面展示 &#xff08;一&#xff09;普通用户 &#xff08;二&#xff09;系统管理员 三、各个模块的具体代码实现 系统仅供学习用&#xff01; 一、使用技术及功能模块 采用python语言和django的web框架&#xff0c;使用B/S模…

数据可视化④:大学生就业可视化呈现

大学生就业是和我们息息相关的话题&#xff0c;每一位大学生都关注着&#xff0c;我们常常在网络上看到有关大学生就业的话题&#xff0c;比如毕业季的一些讨论。在大一的创新创业课中&#xff0c;我们也了解到自己所学的专业和以后如何就业&#xff0c;往哪方面就业。但我们了…

「2023大学生就业报告 」出炉,应届生都去了哪些行业?

2023年的应届毕业生人数再创新高&#xff0c;达到1158万人&#xff0c;是不是开始担忧他们的就业了&#xff1f;别急&#xff0c;最近Boss直聘发布的一组数据&#xff0c;会让这样的担忧有所缓解。 期望薪资有所下降 和增长明显的毕业人数相反的是&#xff0c;这一届大专、本…

基于网络爬虫的大学生就业数据分析与预测模型研究

&#x1f525;作者主页&#xff1a;疯狂行者&#x1f525; &#x1f496;✌java领域优质创作者,专注于Java技术领域技术交流✌&#x1f496; &#x1f496;文末获取源码&#x1f496; 精彩专栏推荐订阅&#xff1a;在 下方专栏&#x1f447;&#x1f3fb;&#x1f447;&#x1…

《 2021大学生就业分析报告 》

2021年&#xff0c;我国高校毕业生将突破900万人&#xff0c;创历史新高&#xff0c;毕业生求职就业状况备受各界瞩目。 智联招聘发起2021大学生就业力调研&#xff0c;聚焦就业去向、就业期待、求职心态、求职进展等方面&#xff0c;从学历、毕业院校、专业等维度&#xff0c;…

如何做好商务合同翻译,需要注意这三点!

众所周知&#xff0c;商务合同属于庄重文体&#xff0c;用词极其考察&#xff0c;具有特定性和严肃的风格。那么&#xff0c;如何做好商务合同翻译&#xff0c;在进行商务合同的英语翻译项目中&#xff0c;需要注意什么? 首先、用词精准。合同语言是法律语言&#xff0c;它和口…

翻译航空合同需要注意什么

近年来&#xff0c;随着我国航空领域技术的发展&#xff0c;航空翻译也成为一项重要项目。那么&#xff0c;针对航空合同翻译&#xff0c;中译英需要注意什么事项&#xff0c;北京翻译公司哪个比较专业&#xff1f; 我们知道&#xff0c;航空合同翻译的专业性强&#xff0c;又涉…

发票中英文对照

发票中英文对照 英文中文InvoiceType发票类型MachineNumber机器编号InvoiceCode发票代码InvoiceNumber发票号码IssueDate开票日期InvoiceCheckCode校验码BuyerName购方名称BuyerTaxCode购方纳税人识别号BuyerAddressTel购方地址、电话BuyerBankAccount购方开户行及账号SellerN…

进出口英文合同翻译,如何处理效果好

众所周知&#xff0c;进出口英文合同翻译对于企业与客户双方来说都是非常重要的&#xff0c; 翻译进出口英文合同&#xff0c;需要处理好各项内容的规定以及双方的权利和义务。那么&#xff0c;进出口英文合同翻译&#xff0c;如何处理效果比较好&#xff1f; 据了解&#xff0…

英文外贸合同翻译,涉外合同如何翻译效果好?

我们知道&#xff0c;涉外合同是一种具有法律效力的对外文书&#xff0c;对签约当事人都有约束力&#xff0c;因此&#xff0c;正确无误的翻译至关重要。那么&#xff0c;针对英文外贸合同翻译&#xff0c;涉外合同如何翻译效果好&#xff1f; 据了解&#xff0c;合同翻译具有固…

【文献研究】国际班轮航运的合作博弈:The coopetition game in international liner shipping

背景&#xff1a;本人在整理资料时翻找出来的以前做的研究自己写的总结&#xff0c;2017年发布在《Maritime Policy & Management》期刊的一篇关于国际班轮航运合作博弈的英文文献&#xff0c;本人本着学习的目的就文献的重点内容进行了浅层次的解读&#xff0c;就自己的理…

【转载】SAP中采购合同与采购计划协议

在生产性采购处理中&#xff0c;公司的采购与物流部门会有业务关联的部分。比如原材料采购中&#xff0c;采购部门会处理原材料的供应商确定&#xff0c;价格及各种采购条件等信息&#xff0c;而物流部门会处理原材料的采购收货及后续移动处理。在SAP采购过程设计中&#xff0c…

如何做好英语经贸合同翻译,有什么要求?

在全球经济一体化的今天&#xff0c;经贸英语在世界经济交往中起着不可忽视的作用&#xff0c;尤其是在签订经贸合同时的翻译问题。那么&#xff0c;如何做好英语经贸合同翻译&#xff0c;英语经贸合同翻译有哪些特点? 据业内人士介绍&#xff0c;在翻译经贸合同文件时要求译员…

网络合同翻译 英中互译常用术语有哪些

我们知道&#xff0c;专业术语是指特定领域对一些特定事物统一的业内称谓&#xff0c;各行各业中都有自己的专业术语。在合同翻译过程中&#xff0c;事先掌握相关的专业术语&#xff0c;既能确保翻译的准确性&#xff0c;又能提升合同翻译的效率。那么&#xff0c;针对 网络合同…

商业合同翻译的注意事项 安睿杰翻译公司

现代商业靠契约精神来维系&#xff0c;其实际体现就是法律合同&#xff08;以下简称合同&#xff09;。可以说&#xff0c;合同是商业活动的核心&#xff0c;是保护企业利益的重要依据。 在企业走向国际化的过程中&#xff0c;涉外合同的签订必不可少。 如何保证不同语言的合同…

进出口英文合同翻译难吗

我们知道 &#xff0c;进出口合同是指营业地处于不同国家或地区的当事人就商品买卖所发生的权利和义务关系而达成的书面协议。进出口合同是对签约各方都具有同等约束力的法律 文件。那么&#xff0c;翻译进出口英文合同难吗&#xff0c;如何做好进出口合同的英文翻译呢&#xf…