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