初始化源碼 : 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)