初始化源码 : sale_system_prepare.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import json
def write_json(file_name):
stocklist = {
'苹果': 10,
'香蕉': 10,
'雪梨': 10,
}
with open(file_name, 'w', encoding='utf-8') as ob:
# 解决存入中文乱码ensure_ascii=False
json.dump(stocklist, ob, ensure_ascii=False)
if __name__ == '__main__':
file_name = 'stock.json'
write_json(file_name)
核心代码:sale system.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import json
from sale_system_prepare import write_json
# 数据初始化
file_name = 'stock.json'
write_json(file_name)
print('欢迎来到英俊杂货店')
# 读取数据
with open(file_name, 'r', encoding='utf-8') as ob:
fruits = json.load(ob)
print("名称" + "\t" + "数量")
fruits = dict(fruits)
for k, v in fruits.items():
print(k + '\t' + str(v))
while True:
# 买的水果种类
print("输入‘q'可以退出")
fruit_list = []
for k, v in fruits.items():
fruit_list.append(k)
fruit_list = str(fruit_list)
fruit_name = input('输入要购买的水果,可选择' + fruit_list)
if fruit_name == 'q':
print("欢迎下次再来")
break
# 只有购买的水果名字在清单上时
elif fruit_name in fruits.keys():
# 买的数量
while True:
fruit_num = input('输入要购买的数量1-10:')
if fruit_num.isdigit():
# 输入只有数字
if int(fruit_num) < 1 or int(fruit_num) > 10:
print('请输入数字1-10')
continue
elif 0 < int(fruit_num) <= 10:
print("你已购买" + str(fruit_num) + "个" + fruit_name)
# 更新水果数量
old_fruit_num = int(fruits[fruit_name])
new_fruit_num = old_fruit_num - int(fruit_num)
fruits[fruit_name] = new_fruit_num
print(fruit_name+"还剩: " + str(new_fruit_num) + ' 个')
if new_fruit_num == 0:
print(fruit_name + ' 已售罄')
# fruits[fruit_name] = '已售罄'
del fruits[fruit_name]
break
else:
# 输入不是纯数字
if fruit_num == 'q':
break
else:
print('请只输入数字')
continue
else:
print('本店暂时没有叫' + fruit_name + '的水果')
continue
print("本店剩余")
print("名称" + "\t" + "数量")
fruits = dict(fruits)
for k, v in fruits.items():
print(k + '\t' + str(v))
# 提交数据
with open(file_name, 'w', encoding='utf-8') as ob:
# 解决存入中文乱码ensure_ascii=False
json.dump(fruits, ob, ensure_ascii=False)