简单购物车程序练习题
内容要求:
- 启动程序后,让用户输入工资,然后打印商品列表
- 允许用户根据商品编号购买商品
- 用户现在商品后,检测余额是否够,够就直接扣款,不够就提醒
- 可随时退出,退出时,打印已购买商品和余额
product_list = [ ("苹果手机",5000), ("单车",300), ("手表",200), ("被子",100), ("杯子",150), ("笔记本电脑",6000) ] #购物车,用于将商品加入 shop_list = [] salary = input("请输入你的工资") if salary.isdigit(): salary = int(salary) #判断输入是否是数字,将输入字符转换为数字类型 #打印商品列表,使用enumerate方式更好,少了查询列表 while True: for index,item in enumerate(product_list): print(index,item) '''for item in product_list: #打印商品列表 print(product_list.index(item),item) ''' user_choice = input("请输入购买商品的编号>>>>") if user_choice.isdigit(): user_choice = int(user_choice) #若输入字符为数字转换为数字 if user_choice < len(product_list) and user_choice >=0: #获取选择的产品信息 p_item = product_list[user_choice] if salary > p_item[1]: #计算剩余金额 salary -=p_item[1] shop_list.append(p_item) #\033[31;1m \033[0m 红色字体 print("你增加了商品%s到购物车,剩余金额\033[31;1m%s\033[0m"%(p_item[0],salary)) else: #\033[41;1m \033[0m 红色背景 print("\033[41;1m你的剩余金额为%s,不够买\033[0m"% salary) #print("你购买了%s,剩余%s"%(item[1],salary)) else: print("输入错误") elif user_choice == "q": print("--------购物清单--------") for index,item in enumerate(shop_list): print(index,item) print("你的余额是:%s"% salary) exit() else: print("输入错误") else: print("输入错误!")
优化后的代码:
''' 1.启动程序后,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户现在商品后,检测余额是否够,够就直接扣款,不够就提醒 4.课随时退出,退出时,打印已购买商品和余额 ''' product_list = [ ("苹果手机",5800), ("单车",300), ("手表",200), ("Python书籍",120), ("笔记本电脑",4600), ("显示器",1100), ] #购物车列表 shop_list = [] salary = input("输入你的工资") #判断输入是否数字,若是,将输入字符转换为数字格式 if salary.isdigit(): salary = int(salary) #利用循环,将商品列表打印出来 while True: for index,item in enumerate(product_list): print(index,item) print("--------------------------------------") user_choice = input("输入你购买的商品编号:") #判断输入是否为数字编号,若是,将其转换为数字格式,若输入为q,则退出循环 if user_choice.isdigit(): user_choice = int(user_choice) #判断用户输入商品编号是否超过商品列表数量 if user_choice < len(product_list) and user_choice >= 0: #将购买的商品提取出来,加入到shop_list p_item = product_list[user_choice] if p_item[1]>salary: #\33[41;1m \33[0m 背景红色 print("\33[41;1m你的钱不够,买毛线!\33[0m") print("--------------------------------------") else: shop_list.append(p_item) #商品购买,减少对应价格 salary -=p_item[1] #\33[31;1m \33[0m 字体红色 print("你购买了%s,剩余价格\33[31;1m%s\33[0m"%(p_item[0],salary)) print("--------------------------------------") else: print("输入编号没有对应产品!请重新选择") elif user_choice == 'q': #打印购物车以及余额 print("---------shop_list-----------") for index,item in enumerate(shop_list): print(index,item) print("你的余额是:%s"%salary) exit() else: print("输入错误") else: print("输入错误")