修改版控制台超市系统(原版有错误特此修改一版)
import os
#定义仓库
repository =dict()
ID=1000
#定义购物清单
shop_list=[]
def init_repository():
#初始化很多商品,每个元组代表一个商品
goods1 = ("1001","python",88.0)
goods2 = ("1002","sWift",89.0)
goods3=("1003","Kotlin",90.0)
goods4=("1004","Java",91.0)
goods5=("1005","Android",92.0)
goods6=("1006","IOS",93.0)
repository[goods1[0]] = goods1
repository[goods2[0]] = goods2
repository[goods3[0]] = goods3
repository[goods4[0]] = goods4
repository[goods5[0]] = goods5
repository[goods6[0]] = goods6
def show_goods():
print("\t\t\t\t欢迎光临,超市")
print("\t\t\t\t超市的购物清单")
print("%13s%40s%10s" %("条码","商品名称","单价"))
for goods in repository.values():
print("%15s%42s%14s" % goods)
#显示购物清单
def show_list():
print("="*100)
if not shop_list:
print("\t\t\t\t购物清单为空!")
else:
print("\t\t\t\t\t购物清单")
title = "%-5s|%15s|%40s|%10s|%4s|%10s" %("ID","条码","商品名称","单价","数量","小计")
print(title)
print("-"*100)
sum = 0
for i , item in enumerate(shop_list):
id = i + ID
## 这里原版是 item[0] , 是个元组,无法获取code
code = item[0][0]
name = repository[code][1]
price = repository[code][2]
number = item[1]
amount = price * number
sum += amount
line = "%-5s|%17s|%44s|%12s|%6s|%12s" %(id,code,name,price,number,amount)
print(line)
print("-"*100)
print("\t\t\t\t\t\t\t\t\t\t\t 总计:",sum)
print("="*100)
#添加购卖的商品
def add():
#等待条形码
code = input("请输入商品的条形码:\n")
if code not in repository:
print("条码错误,请重新输入")
return
goods = repository[code]
number =input("请输入购买数量:\n")
shop_list.append([goods,int(number)])
#编辑
def edit():
id = input("请输入要修改的购物明细id:\n")
#获取索引
index = int(id) - ID
#根据索引获取购物消费的详情清单
item = shop_list[index]
#输入新的购买数量
number = input("请重新输入购买数量:\n")
#修改Item里面的number
item[1] = int(number)
#删除
def delete():
id = input("请输入要删除的购物明细id:\n")
index = int(id) -ID
del shop_list[index]
def payment():
#打印清单
show_list()
print("\n" *3)
print("欢迎下次光临!")
#退出
os._exit(0)
#命令字典
cmd_dict = {'a':add,'e':edit,'d':delete,'p':payment,'s':show_goods}
def show_command():
cmd = input("请输入操作指令:\n" + "添加(a) 修改(e) 删除(d) 结算(p) 超市商品(s) \n")
# 如果用户输入的没有对应的命令:
if cmd not in cmd_dict:
print("输入错误,请重新输入")
else:
cmd_dict[cmd]()
def cleanCMD():
#清除控制台
os.system('cls')
if __name__ == '__main__':
cleanCMD()
init_repository()
show_goods()
while True:
show_list()
show_command()