zoukankan      html  css  js  c++  java
  • 简单购物车操作

    # 商品信息在文件存储的,存储形式:
    # name price
    # 电脑 1999
    # 鼠标 10
    # 游艇 20
    # 美女 998
    # 1,用户先给自己的账户充钱:比如先充3000元。
    # 2,读取商品信息文件将文件中的数据转化成下面的格式:
    # goods = [{"name": "电脑", "price": 1999},
    # {"name": "鼠标", "price": 10},
    # {"name": "游艇", "price": 20},
    # {"name": "美女", "price": 998},
    # ...... ]
    # 3,页面显示 序号 + 商品名称 + 商品价格,如:
    # 1 电脑 1999
    # 2 鼠标 10
    # n 购物车结算
    # q或者Q退出程序。
    # 4,用户输入选择的商品序号,然后打印商品名称及商品价格,并将此商品,添加到购物车,用户还可继续添加商品。
    # 5,如果用户输入的商品序号有误,则提示输入有误,并重新输入。
    # 6,用户输入n为购物车结算,依次显示用户购物车里面的商品,数量及单价,若充值的钱数不足,则让用户删除
    # 某商品,直至可以购买,若充值的钱数充足,则可以直接购买。
    # 7,用户输入Q或者q退出程序。
    # 8,退出程序之后,依次显示用户购买的商品,数量,单价,以及此次共消费多少钱,账户余额多少,并将购买信息写入文件。
    with open("大作业1商品详情", encoding="utf-8", mode="w+") as f:
    print(f.tell())
    s='''
    name price
    电脑 1999
    鼠标 10
    游艇 20
    美女 998
    '''.strip()
    f.write(s)
    print(f.tell())
    f.seek(0,0)
    li=[]
    goods=[]
    for i in f:
    li.append(i.strip())
    print(li)
    for i in range(len(li)):
    dic = dict({})
    if i>=1:
    dic[li[0].split()[0]]=li[i].split()[0]
    dic[li[0].split()[1]]=li[i].split()[1]
    goods.append(dic)
    print(goods[:])
    for i in goods:
    print(goods.index(i)+1,goods[goods.index(i)]["name"],goods[goods.index(i)]["price"])
    remainder=input("请输入充值金额")
    shoppingcart=[]
    cartname = []
    cartnumber = {}
    while 1:
    num=input("请输入需要购买的商品编号").strip()
    if num.upper()=="Q":
    print("程序终止")
    break
    elif num.isdecimal():
    print(goods)
    num=int(num)
    if num>3:
    print("请输入有效的编号")
    break
    else:
    cartname.append(goods[num]["name"])
    cartname=list(set(cartname))
    cartnumber[goods[num]["name"]]=cartnumber.get(goods[num]["name"],0)+1
    print(cartname, cartnumber)
    elif num.upper()=="N":
    for i in cartname:
    for k in goods:
    if goods[goods.index(k)]["name"]==i:
    price=goods[goods.index(k)]["price"]
    tuple=(i,cartnumber[i],price)
    shoppingcart.append(list(tuple))
    print(shoppingcart)
    s=0
    for i in shoppingcart:
    count=i[1]*int(i[2])
    s+=count
    while s>int(remainder):
    print("余额不足,请修改购物车数量")
    print(shoppingcart)
    removegood=input("输入要修改的商品")
    removenumber=int(input("请输入要购买的数量"))
    for i in shoppingcart:
    if i[0]==removegood:
    i[1]=removenumber
    s = 0
    for i in shoppingcart:
    count1 = int(i[1]) * (int(i[2]))
    s += count1
    for i in shoppingcart:
    if i[1]==0:
    shoppingcart.remove(i)
    else:
    print(f"本次消费{s}购买{shoppingcart}余额{int(remainder)-s}")
    with open("购买信息", encoding="utf-8", mode="w") as f:
    f.write(f"本次消费{s}购买{shoppingcart}余额{int(remainder)-s}")
    break
    else:
    print("输入符合类型的数字,重新输入")
    break





  • 相关阅读:
    第八周学习进度
    《梦断代码》阅读笔记01
    冲刺记录一
    NABCD简介
    第七周学习进度
    《编程珠玑》阅读笔记03
    第六周学习进度
    数据库数据定期同步实现
    数据库之间的数据同步
    数据同步——otter
  • 原文地址:https://www.cnblogs.com/diracy/p/13125073.html
Copyright © 2011-2022 走看看