Python学习之day02---学习创建购物小程序

要求:

    1、需要可以动态获取所有商品

    2、购买的时候需要打印可用的余额

    3、购买结束之后需要打印购物清单及余额

一、代码部分

product_list = [('Iphone',5800),('Ipad',5800),('Mac Pro',12800),('Bike',800),('Book',80)] #定义商品列表

shooping_list = []       #定义购物车
salary = input("请输入你的工资:")
if salary.isdigit():        #判断用户输入是否为整数类型
    salary = int(salary)    #强制将结果转换为整数类型
    while True:            #当结果为真的话
        for product_num in product_list:        #开始获取商品数组对应的序列数值
            print(product_list.index(product_num),product_num)
        user_chose = input("请输入您想要购买的商品序号:")      
        if user_chose.isdigit():            #判断用户输入.需要分析一下用户输入的可能性:①输入正确的商品序号进行购买商品②用户输入“q”来进行退出购买③用户输入的是除了商品序号以外的其他字符
            user_chose = int(user_chose)       #将用户输入强制转换为整数类型
            if   user_chose < len(product_list)  and user_chose > -1:     #判断一下用户输入的数值范围。len(product_list)意思为数组的序号数值,否则打印商品不存在
                    pop_num = product_list[user_chose]        #获取用户输入对应的商品数组
                    if pop_num[1] <= salary:                    #将工资与商品价格进行对比,买的起将会把商品加入至购物车,否则将打印余额不足。
                        shooping_list.append(pop_num)            #将购买的商品加入至购物车
                        salary -= pop_num[1]                    #进行扣除购买商品所需的款项,等同于salary =salary - pop_num[1]
                        print("你已经购买了 %s , 你的工资还剩余\033[31;1m%s\033[0m"%(pop_num,salary))        #进行格式化输出,%s分别表示获取输出的对象pop_num和salary
                    else:
                        print("\033[33;1m您的余额还剩 %s,还买个毛线。\033[0m"%salary)
            else:
                print("您输入的商品%s不存在。")
        elif user_chose == 'q':
            print("----------Shooping  Info------------")
            for pop_list in shooping_list:
                print (pop_list) 
            print("\033[31;1m您现在还剩余:%s\033[0m"%salary)
            exit()
        else:
            print("\033[31;1m您输入错了,请重新输入。\033[0m")

二、程序运行如下:

image.png

猜你喜欢

转载自blog.51cto.com/eholog/2310979