您的位置:首页 > 编程语言 > Python开发

OldboyPythonHomework(购物车)

2016-10-21 11:25 211 查看
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)]


#这里用字典的话就没有定义商品编号所以此程序不支持同个商品同时买俩件- -!用户可以从购物车添加商品和删除商品和结算,查看购物车和余额。
goods_list = {'g1':128,'g2':39,'g3':2.5} #创建一个三个商品的字典模拟商品数据
class user(object): #定义一个用户的类及用户具有的操作方法
def __init__(self,ngoods,shop_cart={},balance=300): #这里用户属性中默认300块钱,用户购物车也用字典来模拟数据
self.balance=balance
self.shop_cart={}
self.ngoods=ngoods
def addgoods(self,ngoods_num):#定义用户添加商品到购物车方法当作用户对象的属性
if ngoods_num:
self.shop_cart[ngoods_num]=goods_list[ngoods_num]#用户选择的商品添加到购物车字典
#print (self.shop_cart)#调试
self.show_shop_cart()#调用了下面的展示购物车方法
else:
print ("you don't chose!")
def delgoods(self,dgoods_num):#定义用户从购物车删除商品方法
if dgoods_num:
self.shop_cart.pop(dgoods_num)#将用户所选商品从购物车删除
self.show_shop_cart()
else:
print("you don't chose!")
def settlement(self):#定义结算方法
sum_price=sum(self.shop_cart.values())#计算购物车商品的价格和
#print (sum_price)#调试
#print (self.balance)#调试
if sum_price > self.balance:#如果用户余额balance小于购物车商品总价
print ('Sorry, your credit is running low!')#提示余额不足
else:
self.balance=self.balance - sum_price#结账
self.shop_cart.clear() #清空用户购物车
print ('settlement success! your balance:%d' %(self.balance)) #果断改掉了之前用“+”的习惯
def show_shop_cart(self):#定义一个展示用户购物车方法
#print (self.shop_cart)
for k,v in self.shop_cart.items():
shop_infor = '''
%s:¥%s
'''%(k, v)
print(shop_infor)
def index():#定义一个商品展示方法
for k,v in goods_list.items():
goods_infor='''
%s:¥%s
'''%(k,v)
print(goods_infor)
index()
ngoods = 1#先初始化ngoods一个值 使之进入循环
while ngoods != 'q':
ngoods=input('chose your goods(s:结算,i:商品展示,c:购物车,q:关闭商城):')
if 'p1' in dir():#如果对象p1存在将不在重新创建,否则每次循环创建一个- -!
pass
else:
p1= user(ngoods) #创建用户对象p1
if ngoods in goods_list.keys():
p1.addgoods(ngoods)
elif ngoods =="i":
index()
elif ngoods[0]=='-' and ngoods[1:] in goods_list.keys():#这里用“-”模拟用户想要删除的商品操作,
# so,此时的ngoods[1:]即为商品
p1.delgoods(ngoods[1:])
elif ngoods=='c':
p1.show_shop_cart()
elif ngoods=='s':
p1.settlement()
index()
else:
if ngoods !='q':
print ("input Error!")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python dic