Python函数实现购物

'''
7、购物车
功能要求:
要求用户输入总资产,例如: 2000 
显示商品列表,
让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

goods=[
 {"name":"电脑","price":1999},

{"name":"鼠标","price":10},

{"name":"游艇","price":20},

{"name":"美女","price":998}
]
分程度来进行代码编写:
1、简单版:用户只能输入一次商品的序号,购买一个或者多个,就进行结账;
2、进阶版:用户可以多次输入自己想买的商品序号,同一个商品可以购买多个,最后再进行结账
3、高阶版:把显示商品和加入购物车,结算,三个功能定义成三个函数,进行调用
'''
goods = [{"name":"电脑","price":1999},
{"name":"鼠标","price":10},
{"name":"游艇","price":20},
{"name":"美女","price":998}
]
print('欢迎来到购物城!!!')
1、列出所有商品
def shangping():
"""
该函数是列出商品的序号、名称、售价
"""
print('序号', '商品', '售价', end=' ')
print()
for commodity in range(len(goods)):
print(commodity,goods[commodity]['name'],goods[commodity]['price'])
2、利用函数创建一个购物车
car=[]#[{'id':0,'count':0}]购物车
def shopping_car(index,count):
"""
该函数是创建一个购物车
:param index:第一个参数:为商品加入购物车id对应goods列表中的商品下标
:param count:第二个参数:为商品加入购物车数量
"""
flag=False#判断car列表是否存在
for c in car:#遍历car列表得到字典元素
if index==c['id']:#已加入购物车列表,根据对应的id找到商品
c['count']=c['count']+count#用户加入购物车的商品数量
flag=True#表示存在
print(c)
break
if flag==False:#表示不存在
car.append({'id':index,'count':count})#商品为加入购物车列表,则利用append()函数加入购物车car列表
3、创建一个结算商品售价的函数
def jiesuan():
"""
该函数是根据购物车中的商品数量进行结算
"""
zonjia=0#商品总金额
print('商品名称\t商品单价\t购买数量')
for item in car:#遍历购物车car列表中的商品对应id所购买数量
print(item)
zonjia=goods[item['id']]['price']*item['count']+zonjia#根据购物车中的商品id以及对应的商品数量结算出商品的总金额
print(goods[item['id']]['name'],goods[item['id']]['price'],item['count'])#输出商品名称\t商品单价\t购买数量
return zonjia#返回购物车中商品的总金额
4、用户输入自己的总资产
zichan = int(input('请输入你的资产:'))
while True:
5、创建while循环根据用户对应的操作实现对应的功能
operation=int(input('请输入你要进行的操作:1-商品加入购物车,2-查询购物车,0-退出程序'))
if operation==1:#商品加入购物车
shangping()#调用列出所有商品的函数
xuhao = int(input('请输入你要购买的商品序号:'))#用户输入需要购买商品的序号,也就是商品所在位置的下标
if 0 <= xuhao < len(goods):#序号(商品下标)的取值范围
count = int(input('请输入你要购买商品的数量:'))#用户输入需要购买商品的数量
shopping_car(xuhao,count)#通过用户输入的序号和数量给购物车函数传递所需要的实际参数
print(car)#输出用户加入购物车的商品id和商品数量
else:#输入的商品下标不存在的输出语句
print('不好意思,您输入的商品序号暂未上架,请购买已上架商品,谢谢!!!')
elif operation==2:#查询购物车
zonjia=jiesuan()#调用jiesuan函数
print('订单总金额:%d' % zonjia)
jiexu = input('请问你是否继续消费(y/n):')#判断用户是否继续购买
if jiexu == 'y':#如果为是继续购买
pass
else:#如果为否结算
print('进行结算!!!')
if zichan >= zonjia:#判断用户自己的资产是否能够购买加入购物车的商品总金额
print('恭喜您购买成功!!!')
else:
print('不好意思,您的余额不足,无法完成支付!!!')
elif operation==0:#退出程序
print('退出程序!!!')
break
else:
print('输入的操作有误,请正确输入!!!')
 
 

posted @ 2021-08-17 17:28  码·蚁  阅读(715)  评论(0编辑  收藏  举报