python (个人学习笔记1.0系列番外)-----利用列表与循环制作一个简单的购物车菜单系统

一、购物车菜单系统

1.购物车程序内容简单说明

输入金额:salary = 5000

--------以下为商品信息-------
1. iphone6s 5800
2. mac book 9000
3. coffee 32
4. python book 80
5. bicyle 1500
>>>:1
余额不足,-3000
>>>:5
已加入bicyle 到你的购物车, 当前余额:3500
>>>:quit
您已购买一下商品
bicyle 1500
coffee 30
您的余额为:2970
欢迎下次光临

2.代码实现(无注释版)------------------------------新手建议,先个人理解无注释版代码,不认识的函数就先自己去查明白,然后再查看有注释代码!!!!! !(虽然这个注释也不太清楚)

while True:
    user_salary = input("请输入您的工资额度:")

    if user_salary.isdigit():
        user_salary = int(user_salary)

        Goods_car = []
        Goods_list =[('iphone6s',5800),
                     ('mac book',9000),
                     ('coffee',32),
                     ("python book",80),
                     ("bicyle",1500)]
        while True:
            for i,v in enumerate(Goods_list,1):
                print(i,">>>>",v)
            while True:
                select_good = input("请输入您想要购买的选项[退出:quit]:")

                if select_good.isdigit():
                    select_good = int(select_good)

                    if select_good<0 or select_good>len(Goods_list):
                        print("无此商品,请重新输入!\n")
                        continue

                    user_balanceend = user_salary
                    user_balance = user_salary - Goods_list[select_good - 1][1]

                    if user_balance >= 0:

                        Goods_car.append(Goods_list[select_good - 1][0])

                        user_salary -= Goods_list[select_good - 1][1]
                        print("已将%s加入购物车,当前余额为%d" % (Goods_list[select_good - 1][0], user_salary))
                    else:
                        user_salary = user_balanceend
                        print("余额不足,%d,请重选" % (user_salary - Goods_list[select_good - 1][1]))

                elif select_good == 'quit':
                    Goods_car.sort()
                    print("您已购买了以下商品:%s\n当前余额为:%d"%(Goods_car,user_salary))
                    exit("欢迎下次光临!")

                else:
                    print("选项格式输入错误,请重试\n")
    else:
        print("额度格式输入错误,请重试\n")

输出样例:

请输入您的工资额度:8000
1 >>>> ('iphone6s', 5800)
2 >>>> ('mac book', 9000)
3 >>>> ('coffee', 32)
4 >>>> ('python book', 80)
5 >>>> ('bicyle', 1500)
请输入您想要购买的选项[退出:quit]:3
已将coffee加入购物车,当前余额为7968
请输入您想要购买的选项[退出:quit]:4
已将python book加入购物车,当前余额为7888
请输入您想要购买的选项[退出:quit]:5
已将bicyle加入购物车,当前余额为6388
请输入您想要购买的选项[退出:quit]:3
已将coffee加入购物车,当前余额为6356
请输入您想要购买的选项[退出:quit]:quit
您已购买了以下商品:['bicyle', 'coffee', 'coffee', 'python book']
欢迎下次光临!
当前余额为:6356

3.代码实现(有注释版)

while True:
    user_salary = input("请输入您的工资额度:")

    if user_salary.isdigit():       # .isdigit()判断工资输入的字符串是否符合格式,如果是数字样式则为Ture
        user_salary = int(user_salary)  #因为input输出为字符串,为了运算方便,利用int()将其转换为整数

        Goods_car = []          #建立空列表作为购物车存储单位
        Goods_list =[('iphone6s',5800), #存储初始商品信息
                     ('mac book',9000),
                     ('coffee',32),
                     ("python book",80),
                     ("bicyle",1500)]
        while True:
            for i,v in enumerate(Goods_list,1):  #菜单输出   enumerate()为输出菜单添加序号标识
                print(i,">>>>",v)
            while True:
                select_good = input("请输入您想要购买的选项[退出:quit]:")

                if select_good.isdigit():   #判断购买选项是否符合选项格式
                    select_good = int(select_good)

                    if select_good<0 or select_good>len(Goods_list):       #判断购买选项是否在商品范围内
                        print("无此商品,请重新输入!\n")
                        continue

                    user_balanceend = user_salary           #建立新变量存入输入金额
                    user_balance = user_salary - Goods_list[select_good - 1][1] #建立新变量存入输入金额减去所购买物品的价格,即金额结余,用来判断商品价格是否超过工资数

                    if user_balance >= 0:

                        Goods_car.append(Goods_list[select_good - 1][0])    #将成功购买的商品存入购物车列表

                        user_salary -= Goods_list[select_good - 1][1]
                        print("已将%s加入购物车,当前余额为%d" % (Goods_list[select_good - 1][0], user_salary))
                    else:
                        user_salary = user_balanceend   #与上方存入输入金额的user_balanceend变量建立联系
                        print("余额不足,%d,请重选" % (user_salary - Goods_list[select_good - 1][1]))

                elif select_good == 'quit':            #退出选项
                    Goods_car.sort()        #为商品排序,使重复购买的物品连在一起
                    print("您已购买了以下商品:%s\n当前余额为:%d"%(Goods_car,user_salary))
                    exit("欢迎下次光临!")

                else:
                    print("选项格式输入错误,请重试\n")
    else:
        print("额度格式输入错误,请重试\n")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值