程序练习2:购物车程序
需求:
- 启动程序后,让用户输入工资,然后打印商品列表
- 允许用户根据商品编号购买商品
- 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
- 可随时退出,退出时,打印已购买商品和余额
#! /usr/bin/env python # -*- coding:utf-8 -*- # Author : Orange 2018-01-29 # 购物车程序 #商品应该使用列表来存储,这是一个动态变化的量 goods_list = [ ("大米",100), ("肉",80), ("书",200), ("衣服",300), ("电视机",3000), ("手机",2000), ("硬盘",800), ] shopping_cart = [] #新建一个空的购物车列表,用于储存用户的选择 salary = input("输入你的工资:") #判断输入的是否为数字形式,如果是,将字符串转化为数字 if salary.isdigit(): salary = int(salary) while True: # 取出商品对应的下标,打印下标并打印商品列表 for item in goods_list: print(goods_list.index(item),item) '''#上面的语句相当于----》 #for index,item in enumerate(goods_list): # print(index,item) ''' user_choice = input("请选择购买商品编号>>>:") if user_choice.isdigit(): user_choice = int(user_choice) # 判断用户输入是否在商品列表范围内,len(goods_list) 得到该列表的长度 if user_choice < len(goods_list) and user_choice >= 0 : # 将用户选择的商品 取出来,存在p_item 元组中,通过下标,从而得到商品和对应的价格 p_item = goods_list[user_choice] # 判断所选商品价格是否低于用户工资---》买的起 if p_item[1] <= salary: shopping_cart.append(p_item) #将所选商品加入购物车 salary -= p_item[1] # 从工资(帐户余额)中减去所选商品价格 ,自减的应用,该方法可实现每次减不同的数值! print("加入 %s 到你的购物车,你的帐户余额是\033[31;1m%s\033[0m,按q或Q退出购买"%(p_item,salary)) #print(type(p_item)) #p_item 此时是一个元组 -----> tuple, 因为含有2项:商品名称和价格 else: print("余额只剩%s , 请选择其它商品或按q退出" % salary) else: print("商品%s不存在" % user_choice) elif user_choice == "q" or user_choice == "Q": #选择q退出,并打印购买列表和帐户余额 print("----------- 购物清单 ------------") for i in shopping_cart: print(i) print("\033[31;1m你的帐户余额是 :\033[0m" ,salary) exit() else: #不是数字不是q 的情况 print("非法输入 !") else: print("请用数字输入")