6.11作业4:购物车

时间:2022-03-18 17:14:09
'''4.要求用户输入总资产,例如:2000
 显示商品列表,让用户根据序号选择商品,加入购物车
 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
附加:可充值、某商品移除购物车'''
# 变量的含义:
# sum是累计金额,car是购物车,asset是资产,balance是余额,choose是选择的商品编号,
# num是移除的商品数量
def fun1(dic):
    print(dic)
    sum = 0
    car = {}
    asset = int(input('Please enter your asset:'))
    balance = asset
    while True:
        while True:
            choose = int(input('Please choose the number that you want to buy:'))
            goods = dic[choose]
            if(car.__contains__(choose)):
                car[choose] = [goods[0],goods[1],car[choose][2] + 1]
            else:
                car[choose] = [goods[0], goods[1], 1]
            print(car)
            sum += goods[1]
            balance -= goods[1]
            print('The remaining amount is {}'.format(balance))
            isexit = input('Do you continue to buy?(Y/N) ').lower()
            if isexit == 'y':
                continue
            elif isexit == 'n':
                break
            else:
                print('Invalid input!')
        while True:
            if sum == 0:
                print('The shopping cart is empty! ')
                break
            elif asset > sum:
                print('Purchase success!')
                sum = 0
                asset = balance
                car = {}
                break
            else:
                re = input('Your balance isn\'t enough!Select (remove) some of goods or (recharge):')
                if re == 'remove':
                    regoods = int(input('Please choose the number that you want to remove:'))
                    num = int(input('Please enter the number of removeing:'))
                    if (car.__contains__(regoods)):
                        if num <= car[regoods][2]:
                            sum -= car[regoods][1] * num
                            balance += car[regoods][1] * num
                            car[regoods][2] -= num
                            if num == car[regoods][2]:
                                del car[regoods]
                            print("累计购买金额{},购物车{},余额{}".format(sum, car, balance))
                        else:
                            print('移除数量超出范围!')
                    else:
                        print("The shopping cart don't have this goods!")

                if re == 'recharge':
                    money = int(input('Please enter the amount of recharge:'))
                    asset += money
                    balance += money
                    print('The remaining amount is {}'.format(balance))
dic1 = {1:['荔枝',666],2:['牛油果',888],3:['奇异果',686],4:['榴莲',868]}
fun1(dic1)