python之购物车升级1
python之购物车升级1
源码:
li = [{'name':'西瓜','price':30},{'name':'苹果','price':10},{'name':'香蕉','price':20}] print('欢迎光临') shopping_car = {} my_money = input('请输入你当前的资金:') if my_money.isdigit() and int(my_money) >0: for i,k in enumerate(li): print('序号{},商品{},价格{}'.format(i,k['name'],k['price'])) choose = input('请输入您要购买的商品序号:') if choose.isdigit() and int(choose) < len(li): num = input('你要购买的商品数量:') if num.isdigit(): if int(my_money) > li[int(choose)] ['price']*int(num): my_money = int(my_money) - li[int(choose)] ['price']*int(num) if li[int(choose)]['name'] in shopping_car: shopping_car[li[int(choose)]['name']]= shopping_car[li[int(choose)]['name']]+int(num) else: shopping_car[li[int(choose)]['name']]= int(num) print('购物车的商品有{},您的余额为{}'.format(shopping_car,my_money)) else: print('你的余额不足') else: print('请输入有效的序号')
#注释:
li = [{'name':'西瓜','price':30},{'name':'苹果','price':10},{'name':'香蕉','price':20}] #创建商品列表,赋值给li print('欢迎光临') shopping_car = {} #创建购物车字典,当你选择好购买的商品后就写入 my_money = input('请输入你当前的资金:') #输入你当前身上的金额,当你选择好商品及数量,会做相应的金额冲减 if my_money.isdigit() and int(my_money) >0: #条件输入的金额必须是数字及大于0,才允许继续下一步操作 for i,k in enumerate(li): #把li的列表里的字典键值对转换成 序号和名称赋值给i和k print('序号{},商品{},价格{}'.format(i,k['name'],k['price'])) #格式化输出序号,商品,价格 choose = input('请输入您要购买的商品序号:') #当你输入商品序号后,赋值给choose if choose.isdigit() and int(choose) < len(li): #序号必须是数字,且小于li列表长度 num = input('你要购买的商品数量:') #输入购买数量并赋值给num if num.isdigit(): #条件num值必须是数字才允许下一步操作 if int(my_money) > li[int(choose)] ['price']*int(num): #条件当你的金额大于>所选商品价格*数量,就继续下面的动作 my_money = int(my_money) - li[int(choose)] ['price']*int(num) #当前金额减去你所购买的商品价格及数量,等于剩余金额 if li[int(choose)]['name'] in shopping_car: #把你所选择的商品写入购物车字典key值 shopping_car[li[int(choose)]['name']]= shopping_car[li[int(choose)]['name']]+int(num) #把你所选择的商品数量写入购物车字典value值 else: shopping_car[li[int(choose)]['name']]= int(num) #如果字典中已经有了商品名称key值,就写入数量,意思就是不重复添加商品,只修改数量 print('购物车的商品有{},您的余额为{}'.format(shopping_car,my_money)) #输出你所购买的商品,及余额 else: print('你的余额不足') #‘当你的金额小于商品总价格,就提示余额不足’ else: print('请输入有效的序号') #如果你输入的序号不是商品列表中的len(li)则提示请输入有效的序号