Python进阶之路—四

13、Demo
知识点:流程控制(while)、列表、元组基本操作等
购物车程序:
要求:
<1>提示用户输入账户余额
<2>输出商品的名称和价格供顾客选择
<3>判断用户账户余额还能否继续购买商品
<4>用户退出程序后,输出所购买的商品

#创建商品列表
Goods_list = [
    ('MobilePhone',5000),
    ('Book',80),
    ('Bike',500),
    ('Computer',5400)
]#列表中的元素为元组类型
#创建一个空列表,用于存放已购买的商品
shopping_car = []
flag = True
#print(Goods_list[1][1])
#提示用户输入账户金额
while (flag):
    money = input("请输入您账户的金额:")
    #print(money)
    #print(type(money))变量 money 的类型是 <class 'str'>
    # #判断用户输入的金额是否合法
    if money.isdigit():
        money = int(money)#改变 变量 money的类型为int型
        # print(type(money))#变量 money 的类型是 <class 'int'>
        ##把商品列表中的商品输出
        while(flag):
            for i,v in enumerate(Goods_list):
                print(i,'>>',v)
            #提示用户输入想要购买的商品
            selection = input('请输入需要购买的商品编号[退出:Q]')
            #print(selection)
            #判断用户的输入是否合法
            if selection.isdigit():
                selection = int(selection)
                #判断用户输入的商品编号是否存在
                if selection >= 0 and selection < len(Goods_list):
                    #取出用户购买的商品
                    Goods = Goods_list[selection]
                    print('您购买的商品已加入购物车',Goods)
                    #获取购买商品的价格
                    price_item = Goods[1]
                    #余额
                    if price_item <= money:
                        money -= price_item
                        shopping_car.append(Goods)
                        print('您账户中还剩%s元'%money)
                        if money == 0:
                            flag = False
                    else:
                        print('余额不足,无法购买此商品,请选择其他可购买商品!您账户中还剩%s元'%money)
                else:
                    print('您输入的商品编号不存在')
            elif selection == 'Q':
                print('您已退出购物车程序')
                flag = False
            else:
                print("您输入的字符不合法,请重新输入商品的编号!")
    else:
        print("您输入的金额不合法,请重新输入")
else:
    print('--------您购买的商品:----------')
    for i in shopping_car:
        print(i)
    print('您账户中还剩%s元' % money)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值