修改版控制台超市系统(原版有错误特此修改一版)

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()

评论