要求:
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")
二、程序运行如下: