今天来实现一个简单的超市售货系统
数据存储形式为json的数据

首先是读取数据,这里用到的Python的json库,用于处理json类型的数据

def load():  # 数据读取j = open('goods.txt', 'r', encoding='utf-8')# 逐行读取文件中的数据readers = j.readlines()# 将数据整理后存入datafor i in readers:# 对数据进行清洗 以-为间隔符分割 然后将后半段的换行符清洗掉 将单引号换成双引号data[i.split('-')[0]] = json.loads(i.split('-')[-1].replace('\n', '').replace("\'", '\"'))for i in data:for j in data[i]:data[i][j] = [data[i][j], random.randint(100, 1000)]

然后就是超市的主体部分,实现了用户购买多次购买商品,并打印订单

def sale():print('欢迎来到XXX超市')while True:# 让用户输入购买物品的类别print(' '.join(list(data.keys())))category = input('请选择你想购买的类别:')# 判断用户输入的类别是否存在if category not in data.keys():print('您输入的类别不存在,情重新输入')continue# 将用户选择的类别内的商品都放入commoditys进行保存commoditys = data[category]while True:print('进入商品选购')print(' '.join([k+str(v[0]) for k,v in commoditys.items()]))# 让用户输入购买的商品名commodity = input('请输入你购买的商品:')# 判断用户选择的商品是否存在if commodity not in commoditys.keys():print('您输入的商品不存在,请重新输入')continue# 让用户输入购买商品的数量number = int(input('请输入购买商品的数量:'))# 将库存减少data[category][commodity][1] -= number# 将购物单子存入购物清单中detailed_list.append([commodity, commoditys[commodity][0], number, commoditys[commodity][0]*number, data[category][commodity][1]])print('当前的购物清单为')# 将购物清单打印出来print('商品名  数量  总价')for i in detailed_list:print(i[0], i[2], i[3])# 判断用户是否继续选择商品if input('是否继续选择商品,是输入y:') != 'y':break# 判断用户是否继续购物if input('是否继续选择购物,是输入y:') != 'y':breakprint('=' * 50)print('  商品名称|单价|     数量|    小计|    库存|')print('-' * 50)# 格式化循环打印购物清单for i in detailed_list:print('{:>6}|{:>2}|{:>8}|{:>8}|{:>8}|'.format(i[0], str(i[1]), str(i[2]), str(i[3]), str(i[4])))print('-' * 50)print('                 总消费:%.2f                 '%(sum([i[3] for i in detailed_list])))print('=' * 50)print('欢迎再来!')

全部代码如下:

import json
import randomdef load():  # 数据读取j = open('goods.txt', 'r', encoding='utf-8')# 逐行读取文件中的数据readers = j.readlines()# 将数据整理后存入datafor i in readers:# 对数据进行清洗 以-为间隔符分割 然后将后半段的换行符清洗掉 将单引号换成双引号data[i.split('-')[0]] = json.loads(i.split('-')[-1].replace('\n', '').replace("\'", '\"'))for i in data:for j in data[i]:data[i][j] = [data[i][j], random.randint(100, 1000)]def sale():print('欢迎来到XXX超市')while True:# 让用户输入购买物品的类别print(' '.join(list(data.keys())))category = input('请选择你想购买的类别:')# 判断用户输入的类别是否存在if category not in data.keys():print('您输入的类别不存在,情重新输入')continue# 将用户选择的类别内的商品都放入commoditys进行保存commoditys = data[category]while True:print('进入商品选购')print(' '.join([k+str(v[0]) for k,v in commoditys.items()]))# 让用户输入购买的商品名commodity = input('请输入你购买的商品:')# 判断用户选择的商品是否存在if commodity not in commoditys.keys():print('您输入的商品不存在,请重新输入')continue# 让用户输入购买商品的数量number = int(input('请输入购买商品的数量:'))# 将库存减少data[category][commodity][1] -= number# 将购物单子存入购物清单中detailed_list.append([commodity, commoditys[commodity][0], number, commoditys[commodity][0]*number, data[category][commodity][1]])print('当前的购物清单为')# 将购物清单打印出来print('商品名  数量  总价')for i in detailed_list:print(i[0], i[2], i[3])# 判断用户是否继续选择商品if input('是否继续选择商品,是输入y:') != 'y':break# 判断用户是否继续购物if input('是否继续选择购物,是输入y:') != 'y':breakprint('=' * 50)print('  商品名称|单价|     数量|    小计|    库存|')print('-' * 50)# 格式化循环打印购物清单for i in detailed_list:print('{:>6}|{:>2}|{:>8}|{:>8}|{:>8}|'.format(i[0], str(i[1]), str(i[2]), str(i[3]), str(i[4])))print('-' * 50)print('                 总消费:%.2f                 '%(sum([i[3] for i in detailed_list])))print('=' * 50)print('欢迎再来!')if __name__ == '__main__':detailed_list = []  # 购物清单data = {}  # 数据存储# 读取数据load()# print(data)# 客户开始选购sale()print('当前库存为:\n', data)input('按回车退出')

效果图:

好了,本文到此结束。如果对编程、计算机、程序员方面感兴趣的话,欢迎私信联系我,随时交流!点个关注,是对我莫大的鼓励!
我们这边有一个Python交流群,里面程序源码、教程视频,还有大佬解答问题,群号:821189983

用Python实现简易超市售货系统相关推荐

  1. python超市售货统计程序_用Python实现简易超市售货系统

    今天来实现一个简单的超市售货系统 数据存储形式为json的数据 首先是读取数据,这里用到的Python的json库,用于处理json类型的数据 ```python def load(): # 数据读取 ...

  2. python超市售货系统_用Python实现简易超市售货系统

    今天来实现一个简单的超市售货系统 数据存储形式为json的数据 首先是读取数据,这里用到的Python的json库,用于处理json类型的数据 ```python def load(): # 数据读取 ...

  3. 简易超市收款系统 一

    csdn上找到了一个人的资源 名字叫"java程序员必备" 以为什么 呵呵 还好 暂且随便看了看 蛮有意思的 对static有了更进一步的了解 总的来说 static并不只局限于& ...

  4. python编写简易超市系统_简易控制台超市销售系统|Python练习系列[1]

    练习内容:主要是对嵌套字典和嵌套列表的操作练习 简易控制台超市销售系统完整代码和注释如下 from random import * import os #引入必要模块 class supermarke ...

  5. python练习题之自动售货系统:

    有瑕疵,待改进: 题目描述 总体说明 考生需要模拟实现一个简单的自动售货系统,实现投币.购买商品.退币.查询库存商品及存钱盒信息的功能. 系统初始化时自动售货机中商品为6种商品,商品的单价自定义,存钱 ...

  6. java报告:小不点超市售货系统类图设计

    由于不是我自己的作业,就偷工减料了,没写缓存系统和后台自动保存 这里只放类图,没有源码!!!抄代码可耻!!!!

  7. python注册系统_Python制作简易注册登录系统

    Python制作简易注册登录系统 这篇文章主要为大家详细介绍了 Python 简易注册登录系统的制作方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Python 是一种面向对象.解释型计算机程 ...

  8. python项目实战——银行取款机系统(一)

    项目实战目录 python项目实战--银行取款机系统(一) 前言 今天我们将通过python完成简易银行提款机系统的实战,我们一步步实现我们的要求.话不多说,看操作. 环境使用 python 3.9 ...

  9. Python与人工智能入门实践——简易人脸识别系统

    Python与人工智能入门实践--简易人脸识别系统 写在前面: 笔者在寒假期间进行了一些简短的实训,主要内容包括简单的爬虫和简单的人脸识别算法,由于时间有限,对于python也是第一次详细学习,功能较 ...

最新文章

  1. mfc ado 链接mysql 数据_MFC用ado方法和数据库连接后,怎么取得数据?(高加分)...
  2. C# XML的序列化与反序列化
  3. 计算机与人脑_要把人脑连到计算机上!马斯克真敢想,但人类准备好了吗?
  4. 学习笔记(15):Python网络编程并发编程-进程理论
  5. matlab qtdecomp,Opencv图像识别从零到精通(25)------区域分裂与合并
  6. 百度要召集 600 名深度学习开发者搞事情? 首届深度学习开发者峰会等你来
  7. Skype for Business Server 2015-13-IISARR-2-发布-2-前端服务器
  8. MUI框架开发HTML5手机APP(一)--搭建第一个手机APP
  9. DSP原理及图像处理应用
  10. python样条插值(二)
  11. P3239 [HNOI2015]亚瑟王
  12. 【开源毕设】一款精美的家校互动APP分享——爱吖校推 [你关注的,我们才推](持续开源更新2)
  13. sap pi的操作1
  14. 苹果沙盒服务器验证,我收到21004的状态值回复来自苹果的沙盒测试服务器自动再生订阅的IOS?(I'm gett...
  15. python 零基础必知--开篇python篇
  16. G-Lexicographically Minimum Walk[CF-Gym-102391][2019-2020 XX Open Cup, Grand Prix of Korea]
  17. W51 - 999、电影评价数据的采集
  18. 基于MATLAB的疲劳检测系统
  19. EndNote 国标-如何使用_免费
  20. ros3.30版本以上的动态域名解析3322与changeip成功

热门文章

  1. 面试了一个 37 岁程序员,让我有所触动,35岁以上的程序员该何去何从?
  2. Tc27x的MTCR与MFCR指令
  3. QIIME 2教程. 01简介和安装 Introduction Install(2020.11)
  4. NURBS Curves
  5. cache stm32h7_【STM32H7教程】第24章 STM32H7的Cache解读(非常重要)
  6. Mac免费屏保 Brooklyn 苹果logo
  7. Postman-APIs是干什么的?
  8. 10G整数中寻找中位数
  9. 利用for循环打印图形
  10. [置顶]使用scrapy_redis,自动实时增量更新东方头条网全站新闻