python练习:购物车

购物车

功能要求:

  • 要求用户输入总资产,例如:2000
  • 显示商品列表,让用户根据序号选择商品,加入购物车
  • 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
  • 附加:可充值、某商品移除购物车
1
2
3
4
5
6
goods  =  [
     { "name" "电脑" "price" 1999 },
     { "name" "鼠标" "price" 10 },
     { "name" "游艇" "price" 20 },
     { "name" "美女" "price" 998 },
]

第一次写(没用列表)
def Status(price1,status1,sumall):
    if status1 == 1:
        sumall = AddPrice(price1,sumall)
        return sumall
    if status1 == 0:
         sumall = MinusPrice(price1,sumall)
         return sumall


def AddPrice(price1,a,sumall):
    sumall = sumall + price1
    return sumall


def MinusPrice(price1,sumall):
    sumall = sumall - price1
    return sumall
######################################################
goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
]
money1 = int(input("请您输入您的总资产:"))
sumall = 0
status1 = 1
while 1:
    while 2:
        for n in range(len(goods)):
             print("商品序号"+ str(n+1) + ":"+goods[n]['name'] + str(goods[n]['price']) + "元")
        a = int(input("请输入您想购买的商品序号:")-1)
        sumall = Status(goods[a]['price'],status1,sumall)
        if sumall > money1:
            status1 = 0
            sumall = Status(goods[a]['price'],status1,sumall)
            print("您的资产不够,请重新输入")
            continue
        else:
            break


    sfjs = input("结算请按'0'',修改购物车请按'1'':")
    if sfjs == 0:
        syje = money1 - sumall
        print("购买成功,您还剩"+str(syje))
        break
    else :
        xiugai = input("继续购买请按'1'',删除物品请按'0'':")
        if xiugai == 0:
            status1=0
            continue
        else:
            status1 ==1
            continue


第二次优化(使用列表字典)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# # python 2.7.0

def Jgzh ():
    Sum = 0
    for i in range(0,len(xglist)):
        Sum = Sum + xglist[i]['price']
        # Sum = int(Sum)
    return Sum
def GwcList(Geta,GetStatus):
    if GetStatus == 1:
        xgdic['price'] = goods[a]['price']
        xgdic['name'] = goods[a]['name']
        xglist.append(xgdic)
    if GetStatus == 0:
        del xglist[a]
xglist=[]
xgdic={}
goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
]
Money = int(input("请您输入您的总资产:"))
while 1:
    while 2:
        for n in range(len(goods)):
             print("商品序号"+ str(n+1) + ":"+goods[n]['name'] + str(goods[n]['price']) + "元")
        a = int(input("请输入您想购买的商品序号:")-1)
        Status = 1
        GwcList(a,Status)
        Sum = Jgzh()
        if Sum > Money:
            Status = 0
            GwcList(-1,Status)
            Sum = Jgzh()
            print("您的资产不够,请重新输入")
            continue
        else:
            break
    while 3:
        Sfjs = input("结算请按'0'',修改购物车请按'1'':")
        if Sfjs == 0:
            Syje = Money - Jgzh()
            print("购买成功,共计花费:"+str(Jgzh())+"元,还剩余额:"+str(Syje)+"元,详细购买清单如下:")
            for i in range(0,len(xglist)):
                print(str(i+1) + "、" + xglist[i]['name'] + str(xglist[i]['price']) +"元")
            break
        else :
            XiuGai = input("删除物品请按'0',继续购买请按'1':")
            if XiuGai == 0:
                Status = 0
                for n in range(len(xglist)):
                    print("商品序号"+ str(n+1) + ":"+xglist[n]['name'] + str(xglist[n]['price']) + "元")
                a = int(input("请输入您想删除的商品序号:")-1)
                GwcList(a,Status)
                continue
            else:
                Status == 1
                break
    if Sfjs == 0:
        break
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值