购物车程序

#购物车程序需求:
1、用户启动时先输入工资
2、用户启动程序后打印商品列表
3、允许用户选择购买商品
4、允许用户不断地购买商品
5、购买时检测余额是否足够,足够直接扣款;否则提示余额不足
6、允许用户随时退出程序,退出时打印已购列表

#注:虽然上边基本的6个条件都能达到,但是存在问题:执行程序的时候,用户输入的数字大于0-5这个设定的范围,他仍然会运行,不会停止或者报错。

 购物车代码如下:

 1 salary = input("input your salary:")
 2 if salary.isdigit():
 3     salary = int(salary)
 4     print ("33[32m您现在拥有RMB[%s]元。33[0m" %salary)
 5 else:
 6     print ("invalid data type..")
 7     exit()
 8 welcome_msg = "33[41m欢迎来到购物车程序33[0m".center(50,'*')
 9 print (welcome_msg)
10 exit_flag = 'Flase'
11 product_list = [
12     ('IphoneX',7000),
13     ('Mac Air',8000),
14     ('Mac Pro',12000),
15     ('Bike',500),
16     ('Ice cream',10),
17     ('snacks',100),]
18 shoping_car = []
19 print ("product  list".center(50,'*'))
20 for product_item in enumerate(product_list) :
21     index = product_item[0]
22     p_name = product_item[1][0]
23     p_price = product_item[1][1]
24     print (index,p_name,p_price)
25 while exit_flag is not True:
26     user_choice = input("[q=quit,c=check]33[31m请按数字键选择您想要购买的商品:33[0m")
27     if user_choice.isdigit():
28         user_choice = int(user_choice)
29         if user_choice < len(product_list):
30           p_item = product_list[user_choice]
31         if p_item[1] <= salary:
32           shoping_car.append(p_item)
33           salary -= p_item[1]
34           print("购买了[%s]到购物车,你的余额还剩余33[32m[%s]33[0m" %(p_item,salary))
35         else:
36             print ("您的33[31m余额不足33[0m购买[%s],您的余额为:33[31m[%s]33[0m" %(p_item,salary))
37     else:
38         if user_choice == 'q' or user_choice == 'quit':
39             print ("您购买的商品列表如下:".center(50,'-'))
40             for item in shoping_car:
41                 print (item)
42             print ("END".center(50,'*'))
43             print ("您的余额还剩下33[32m[%s]33[0m元" %salary)
44             exit_flag = True
45         elif user_choice == 'c' or user_choice == 'check':
46             print ("33[32m您已经购买了以下商品:33[0m".center(50,'-'))
47             for item in shoping_car:
48                 print (item)
49             print ("END".center(50,'*'))
50             print ("您的余额还剩下33[32m[%s]33[0m元" %salary)
原文地址:https://www.cnblogs.com/zhangjianghua/p/8215463.html