1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python超市售货统计程序_用Python实现简易超市售货系统

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

时间:2022-03-27 02:17:54

相关推荐

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

今天来实现一个简单的超市售货系统

数据存储形式为json的数据

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

```python

def load(): # 数据读取

j = open('goods.txt', 'r', encoding='utf-8')

# 逐行读取文件中的数据

readers = j.readlines()

# 将数据整理后存入data

for 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)]

```

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

```python

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':

break

print('=' * 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('欢迎再来!')

```

全部代码如下:

```python

import json

import random

def load(): # 数据读取

j = open('goods.txt', 'r', encoding='utf-8')

# 逐行读取文件中的数据

readers = j.readlines()

# 将数据整理后存入data

for 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':

break

print('=' * 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,小白指导,教学分享记得私信我

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。