要求:

    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