zoukankan      html  css  js  c++  java
  • 商家修改增加删除商品,金额 个人购买程雪



    # 用户类型存放列表(商家,个人)
    new_item = []
    # shop商品信息列表
    shop = []
    # 定义一个商品信息存放表
    new_shop_list = []
    # 存放index,item的列表
    shop_ws = []
    # 将商品信息(商品,价格).txt 读到列表shop里面去
    with open("商品信息.txt ", 'r+') as op:
    shop_list = op.readlines()
    for _shop_list in shop_list:
    shop.append(_shop_list.strip(' ').split(','))
    #print(len(shop))
    print(shop)

    # 登陆用的字典info
    info = {'商家':
    ['新增商品',
    '修改商品',
    '删除商品'],
    '个人': []
    }
    #print(info)
    # 使用下标做标记位,用enumerate把shop的下角标读到index,shop读到item
    for index, item in enumerate(shop):
    print(index, item)
    shop_ws.append(index)
    shop_ws.append(item)
    # 自己定义一个true对象,在while true循环中代替break
    wangsen = True
    while wangsen:
    print('33[32;40m------欢迎来到购物系统!!!---------33[0m')
    for items in info:
    # 打印出两个绿底的********,中间的item是变量(商家,个人)
    print('33[32;1m*******33[0m', items, '33[32;1m*******33[0m')
    # 在底部打印出退出程序的位置
    print('33[32;1m*****', '退出程序请按:q', '33[32;1m*****33[0m')
    # 定义一个select 变量 为了进入菜单做判断
    select = input('请输入您的身份:')
    # 如果输入q 结束循环
    if select == 'q':
    print('欢迎下次使用')
    wangsen = False
    else:
    # 如果select输入存在在info字典里
    if select in info:
    while wangsen:
    if select == '个人':
    print('33[32;1m*****欢迎来到王森购物平台*********33[0m')
    print('------------商品列表如下----------------')
    print(shop_ws)
    salary = input('请输入您的工资:')
    # 判断工资为是否为数字,并将salary赋值为整数型
    if salary.isdigit():
    salary = int(salary)
    while wangsen:
    # 输入商品id
    user_choice = input('请输入商品id:')
    # 判断商品id是否为数字,并将user_choice赋值为整数型
    if user_choice.isdigit():
    user_choice = int(user_choice)
    # 判断user_choice存在
    if user_choice < len(shop) and user_choice >= 0:
    # p_item就是存放商品信息的地方(商品名称,金额)
    p_item = shop[user_choice]
    print(p_item)
    # 如果 商品金额小于 工资
    if salary >= int(p_item[1]):
    new_shop_list.append(p_item)
    # 就把商品信息加到shop列表里面去
    # 把工资扣除
    salary -= int(p_item[1])
    print("你买了{info_1},余额33[31;1m{info_2}33[0m".format(
    info_1=new_shop_list, info_2=salary))


    else:
    print('钱不够啦')
    wangsen = False

    else:
    print('商品id不存在')
    wangsen = False

    else:
    print('您输入的商品id有误,必须为存在的商品编号')
    wangsen = False

    else:
    print('您输入的工资有误')
    wangsen = False
    if select == '商家':
    print('----------------------商家修改系统----------------------')
    # 把一级目录商家的下级目录(新增商品,修改商品价格,删除商品读出来)
    for business in info['商家']:
    # 将下级目录打印出来
    print('33[32;1m*******33[0m', business, '33[32;1m*******33[0m')
    # 在底部打印出退出程序的位置
    print('33[32;1m***********33[0m', '退出请按:q', '33[32;1m*********33[0m')
    # 输入select_business 为了选择下级目录做判断
    select_business = input('请输入您的操作:')
    if select_business == 'q':
    print('欢迎下次使用')
    wangsen = False
    if select_business == '新增商品':
    print(shop_ws)
    # 输入商品名称(commodity),商品价格 ,写进商品信息.txt
    commodity = input('请输入商品名称:')
    Price = input('请输入商品价格:')
    with open('商品信息.txt', 'a') as op:
    #{ws1},{ws2}后面如果加上 就能换行了重点 这有个空格
    op.write("{ws1},{ws2} ".format(ws1=commodity, ws2=Price))
    print('33[32;1m******33[0m', '商品添加成功', '33[32;1m*****33[0m')
    if select_business == '修改商品':
    print('33[32;1m******33[0m', '请对下列商品进行修改', '33[32;1m*****33[0m')
    print(shop_ws)
    pro_number = input('33[38;1m请输入要修改商品的编号:33[0m')
    if pro_number.isdigit():
    pro_number = int(pro_number)
    new_price = input('请输入要修改的价格:')
    #shop相当于一个二维数组
    shop[pro_number][1]=new_price
    #把这个txt文件删除
    os.remove('商品信息.txt')
    #运用for循环把shop中的内容读进new_message ,在写进被清空的 商品信息.txt
    #a,追加模式。【可读; 不存在则创建;存在则只追加内容;】
    for new_message in shop:
    with open ('商品信息.txt','a') as op:
    op.write('{info1},{info2} '.format(info1=new_message[0],info2=new_message[1]))
    print('修改成功')
    else:
    print('您输入的商品id错误')
    if select_business == '删除商品':
    print('33[32;1m**********33[0m','请对以下产品进行删除','33[32;1m***********33[0m')
    print(shop_ws)
    del_number = input('请输入删除商品的商品id:')
    if del_number.isdigit():
    del_number = int(del_number)
    #删除对应的商品编号
    del shop[del_number]

    #删除文件,用os模块的remove
    os.remove('商品信息.txt')
    #将现在shop的信息for循环到new_del_shop中
    for new_del_shop in shop:
    with open('商品信息.txt','a') as op:
    op.write('{ws1},{ws2} '.format(ws1=new_del_shop[0],ws2=new_del_shop[1]))
    print('33[32;1m******33[0m','删除成功','33[32;1m*******33[0m')

    else:
    print('商品id输入错误')
  • 相关阅读:
    Editor REST Client
    log配置
    spring-boot-configuration-processor
    http请求
    做项目用到的一些正则表达式,贴出来共享
    批量插入的实现
    sql执行顺序对比
    Java常用的并发工具类:CountDownLatch、CyclicBarrier、Semaphore、Exchanger
    spring中bean的生命周期
    多属性的对象列表的两种排序方法
  • 原文地址:https://www.cnblogs.com/wangsen-123/p/5731033.html
Copyright © 2011-2022 走看看