拿到要求真不知道怎么写,不能还要写个商城页面吧;

最后还是用了input()模拟用户操作吧- -!不就操作个字典吗(字典模拟商品数据)。

 

python版本:

>>>import sys
>>>print (sys.version)
3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)]

 

 1 #这里用字典的话就没有定义商品编号所以此程序不支持同个商品同时买俩件- -!用户可以从购物车添加商品和删除商品和结算,查看购物车和余额。
 2 
 3 goods_list = {'g1':128,'g2':39,'g3':2.5}                  #创建一个三个商品的字典模拟商品数据
 4 
 5 class user(object):                                        #定义一个用户的类及用户具有的操作方法
 6     def __init__(self,ngoods,shop_cart={},balance=300):    #这里用户属性中默认300块钱,用户购物车也用字典来模拟数据
 7         self.balance=balance
 8         self.shop_cart={}
 9         self.ngoods=ngoods
10     def addgoods(self,ngoods_num):#定义用户添加商品到购物车方法当作用户对象的属性
11 
12         if ngoods_num:
13             self.shop_cart[ngoods_num]=goods_list[ngoods_num]#用户选择的商品添加到购物车字典
14             #print (self.shop_cart)#调试
15             self.show_shop_cart()#调用了下面的展示购物车方法
16         else:
17             print ("you don't chose!")
18 
19     def delgoods(self,dgoods_num):#定义用户从购物车删除商品方法
20         if dgoods_num:
21 
22             self.shop_cart.pop(dgoods_num)#将用户所选商品从购物车删除
23             self.show_shop_cart()
24 
25         else:
26             print("you don't chose!")
27 
28     def settlement(self):#定义结算方法
29         sum_price=sum(self.shop_cart.values())#计算购物车商品的价格和
30         #print (sum_price)#调试
31         #print (self.balance)#调试
32 
33         if sum_price > self.balance:#如果用户余额balance小于购物车商品总价
34             print ('Sorry, your credit is running low!')#提示余额不足
35         else:
36             self.balance=self.balance - sum_price#结账
37             self.shop_cart.clear() #清空用户购物车
38             print ('settlement success! your balance:%d' %(self.balance)) #果断改掉了之前用“+”的习惯
39 
40     def show_shop_cart(self):#定义一个展示用户购物车方法
41         #print (self.shop_cart)
42         for k,v in self.shop_cart.items():
43            shop_infor = '''
44                 %s:¥%s
45            '''%(k, v)
46            print(shop_infor)
47 
48 def index():#定义一个商品展示方法
49     for k,v in goods_list.items():
50         goods_infor='''
51          %s:¥%s
52         '''%(k,v)
53         print(goods_infor)
54 index()
55 
56 
57 ngoods = 1#先初始化ngoods一个值 使之进入循环
58 
59 while ngoods != 'q':
60     ngoods=input('chose your goods(s:结算,i:商品展示,c:购物车,q:关闭商城):')
61     if 'p1' in dir():#如果对象p1存在将不在重新创建,否则每次循环创建一个- -!
62         pass
63     else:
64         p1= user(ngoods) #创建用户对象p1
65     if ngoods in goods_list.keys():
66 
67         p1.addgoods(ngoods)
68     elif ngoods =="i":
69         index()
70     elif ngoods[0]=='-' and ngoods[1:] in goods_list.keys():#这里用“-”模拟用户想要删除的商品操作,
71         # so,此时的ngoods[1:]即为商品
72         p1.delgoods(ngoods[1:])
73     elif ngoods=='c':
74         p1.show_shop_cart()
75     elif ngoods=='s':
76         p1.settlement()
77         index()
78     else:
79         if ngoods !='q':
80             print ("input Error!")

 

posted on 2016-04-01 19:36  陆雅亮  阅读(1033)  评论(0编辑  收藏  举报