python编写的购物车小程序

class Shopping(object):
    def __init__(self, money):
        self.money = money
        self.gn_menu()

    # 功能菜单
    def gn_menu(self):
        print('=' * 30)
        print('\33[34;1m1.购物')
        print('2.从购物车移除商品')
        print('3.结账')
        print('4.充值')
        print('5.查询余额')
        print('6.退出\33[1m')
        print('=' * 30)
        while True:
            self.gn = input('请选择功能:')
            if self.gn == '1':
                self.shopping_car()
                break
            elif self.gn == '2':
                self.del_goods()
                break
            elif self.gn == '3':
                self.jiezhang()
                break
            elif self.gn == '4':
                self.CZ()
                break
            elif self.gn == '5':
                self.cx()
                break
            elif self.gn == '6':
                break
            else:
                print('输入有误,请重新输入:')

    # 商品菜单
    def show_menu(self):
        print('-' * 30)
        print('商品有:')
        print('\33[34;1m1.巧克力  \33[31;1m$150\33[1m')
        print('\33[34;1m2.泡面    \33[31;1m$60\33[1m')
        print('\33[34;1m3.可乐    \33[31;1m$80\33[1m')
        print('\33[34;1m4.薯片    \33[31;1m$100\33[1m')
        print('\33[34;1m5.冰淇淋  \33[31;1m$50\33[1m')
        print('\33[1m-' * 30)

    # 购物
    def shopping_car(self):
        while True:
            self.show_menu()
            i = int(input('请输入要购买的商品编号:'))
            shangping1 = ['巧克力', '泡面', '可乐', '薯片', '冰淇淋']
            jiage = [0, 150, 80, 60, 100, 50]
            if i > 0 and i <= len(shangping1):
                shopping_car.append(shangping1[i - 1])
                D.append(jiage[i])
                print('即将购买的商品为:\33[34;1m%s\33[1m' % shangping1[i - 1])
                print('该商品价格为:\33[31;1m%d\33[1m' % jiage[i])
                print('-' * 30)
                print('已购买的商品有:\33[34;1m%s\33[1m' % shopping_car)
                print('商品总价为:\33[31;1m%d\33[1m' % sum(D))
                print('-' * 30)
            else:
                print('输入有误,请重新输入')
            a = input('请输入\33[31;1my\33[1m继续购买或按其它任意键退出')
            if a == 'y':
                pass
            else:
                break
        print('已购买的商品有:\33[34;1m%s\33[1m' % shopping_car)
        print('商品总价为:\33[31;1m%d\33[1m' % sum(D))
        self.gn_menu()

    # 购物结账
    def jiezhang(self):
        print('商品总价为:\33[31;1m%d\33[1m' % sum(D))
        if sum(D) > self.money:  # 判断商品的总价格是否大于总资产
            print('当前余额为:\33[31;1m%d\33[1m' % self.money)
            print('余额不足,请充值:')
        else:
            self.F = self.money - sum(D)  # 用总资产减去商品的总价
            print('购买成功,余额为:\33[34;1m%d\33[1m' % self.F)
            del shopping_car[:]  # 清空列表
            del D[1:]  # 清除列表第一个元素之后的元素
            self.money = self.F
        self.gn_menu()

    # 移除购物车商品
    def del_goods(self):
        print('购买的商品为:\33[34;1m%s\33[1m' % shopping_car)
        print('商品总价为:\33[31;1m%d\33[1m' % sum(D))
        while True:
            del_sp = int(input('输入商品所在位置对应的序号:'))
            del shopping_car[del_sp - 1]  # 根据下标选择要删除的对象
            print('还剩余的商品为:\33[34;1m%s\33[1m' % shopping_car)
            del D[del_sp]
            print('商品总价为:\33[31;1m%d\33[1m' % sum(D))
            a = input(',请输入\33[31;1my\33[1m继续移除商品或按其它任意键退出')
            if a == 'y':
                pass
            else:
                break
        print('还剩余的商品为:\33[34;1m%s\33[1m' % shopping_car)
        print('商品总价为:\33[31;1m%d\33[1m' % sum(D))
        self.gn_menu()

    # 账户充值
    def CZ(self):
        while True:
            x = input('是否充值,请输入(\33[31;1my/n\33[1m)选择\33[31;1m是\33[1m或者\33[31;1m否\33[1m')
            if x == 'y':
                cz = int(input('请输入充值金额:'))
                self.money += cz
                if cz > 0:
                    print('充值成功,余额为:\33[31;1m%d\33[1m' % self.money)
                self.gn_menu()
                break
            elif x == 'n':
                self.gn_menu()
                break
            else:
                print("输入有误,请重新输入")
    #查询余额
    def cx(self):
        print('当前余额为:\33[31;1m%d\33[1m'%self.money)
        self.gn_menu()

shopping_car = []
D = [0]
User = int(input('\33[34;1m请输入余额:'))
user = Shopping(User)

运行结果:
首先看看菜单功能:
在这里插入图片描述
选择1.购物功能
在这里插入图片描述
我们把1-5全都购买一遍
在这里插入图片描述
购买完成之后跳转到功能菜单

选择2.从购物车移除商品
在这里插入图片描述
移除‘巧克力’、‘冰淇淋’试试
在这里插入图片描述
在这里插入图片描述
选择3.结账
在这里插入图片描述
完成结账,自动跳转到功能菜单
看看充值
在这里插入图片描述
刚才的余额为760,充值1000后为1760
选择5.查询余额
在这里插入图片描述
当前余额为1760
选择6就是退出程序

这个小程序还可以更加的完善,这里这个简单的小程序就写到这里了,大家有兴趣可以尝试自己写一个功能更加齐全的小程序

猜你喜欢

转载自blog.csdn.net/qq_43308242/article/details/84972699