购物车功能要求:要求用户输入总资产,例如: 2000显示商品列表,让用户根据序号选择商品,
加入购物车购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
把显示商品和加入购物车,结算,三个功能定义成三个函数,进行调用
goods=[ {"name":"电脑","price":1999},
{"name":"鼠标","price":10},
{"name":"游艇","price":20},
{"name":"美女","price":998}
]
carInfo = {} #存储购买数量和商品价格
Car = [] #追加购物车的内容至列表便于计算
def goodsInfo(): #显示商品信息
for i in goods: #遍历goods列表中的每一个元素
Num = goods.index(i) + 1 #将元素下标值+1,定义商品序号
print('序号%d代表:%s,价格为%.2f元' % (Num,i['name'], i['price']))#由于元素都是键值对,所以可用i[]直接取值
def shopCar(): #购物车
while True:
num = int(input('请输入需要加入购物车的商品序号:'))
if 0<num<=len(goods): #
multiple = int(input('请输入需要购买商品%d的数量:' % num))
if multiple>0:
carInfo[multiple]=goods[num-1]['price'] #将输入的购买数量和商品价格作为键值对存入字典中
else:
print('您输入的商品数量有误,请重新输入')
ask = input('是否继续添加商品至购物车?y/n:')
if ask == 'y':
continue
else:
print('结束购物车添加,进入结算环节')
break
Car.append(carInfo)#将所有字典写入列表Car中,存储购物车序号及购买数量
def settlement():#结算
money = 0
num = list(carInfo.keys()) # 将所有序号的值赋给列表num
price = list(carInfo.values()) # 将所有数量的值赋给列表price
for i in range(len(num)):
money = money + num[i] * price[i]
print('需结算商品总价格为:%d元'%money)
goodsInfo()
shopCar()
settlement()