zoukankan      html  css  js  c++  java
  • python---购物车---更新

    购物车程序更新:

    更新商家入口,实现以下功能:

    1. 商家能够修改商品价格;

    2. 商家能够下线商品;

    3. 商家能够增加商品;

    4. 商品信息存在文件中

     1 # -*- coding:utf-8 -*-
     2 # LC
     3 product_list = []
     4 product_line = []
     5 count = 0
     6 
     7 with open("product_list","r") as f:                     #打开商家货品清单文件
     8     for item in f:
     9         product_line = item.rstrip().split(",")            #将每行赋值给成一个列表,以“,”区分
    10         product_list.append(product_line)                   #将每行的列表加入product_list列表中
    11 
    12 print("This is your production".center(50,"-"))         #打印列表
    13 for i in product_list:
    14     print(count,i)
    15     count+=1
    16 
    17 #提供增加商品,修改商品价格,删除商品功能
    18 while True:
    19     select = input("Please input you selection,'a' to add,'m' to modified the price,'d' to Delete,'q' to quit :")
    20     count = 0
    21     if select == 'a':
    22         add_product = input("Please input new product name:")
    23         add_price = input("Please input new product price:")
    24         new_product = [add_product,add_price]                       #将新添加的商品赋值成列表
    25         product_list.append(new_product)                            #向产品清单列表中插入新添加的商品
    26         with open("product_list","a") as f_add:                 #将添加的商品写入文件中,以追加的方式
    27             f_add.writelines(product_list[-1][0]+","+product_list[-1][1]+"
    ")
    28         print("33[1;31mThis is your new production list33[0m".center(50,"-"))
    29         for i in product_list:       #打印新的产品清单
    30             print(count,i)
    31             count+=1
    32     elif select == 'm':
    33         modify_index = input("Please input index of the item which you want to modify:")    #输入要修改价格的产品序号
    34         modify_index = int(modify_index)
    35         length = product_list.index(product_list[-1])   #判断输入的修改价格产品序号是否再产品清单范围
    36         if 0 <= modify_index <= length:
    37             new_price = input("Please input the new price:")                    #输入新的价格
    38             product_list[modify_index][1]=new_price                                 #将新的价格修改至产品清单列表中
    39             with open("product_list","w") as f_modify:                          #想修改的产品清单列表写入文件中
    40                 for i in product_list:
    41                     f_modify.writelines(i[0]+","+i[1]+"
    ")
    42             print("33[1;31mThis is your new production list33[0m".center(50,"-"))
    43             for i in product_list:                                        #打印新的产品清
    44                 print(count,i)
    45                 count+=1
    46         else:
    47             print("Your select is invalid, Please try again!")      #如果输入的序号不在范围内,则报错重新来
    48     elif select == 'd':                                             #删除商品
    49         delete_index = input("Please input index of the item which you want to delete:")
    50         delete_index = int(delete_index)
    51         length = product_list.index(product_list[-1])               #判断输入的删除序号是否再产品清单范围
    52         if 0 <= delete_index <= length:
    53             product_list.pop(delete_index)                      #从产品清单中删除制定的产品
    54             with open("product_list","w") as f_del:
    55                 for i in product_list:
    56                     f_del.writelines(i[0]+","+i[1]+"
    ")           #将新的产品清单写入文件中
    57             print("33[1;31mThis is your new production list33[0m".center(50,"-"))
    58             for i in product_list:
    59                 print(count,i)
    60                 count+=1
    61         else:
    62             print("Your select is invalid, Please try again!")
    63 
    64     elif select == "q":
    65         print("You have been quit!")
    66         break
    67     else:
    68         print("invalid input,please input again!")
    商家入口程序
    pic,2
    rice,3
    water,32
    phone,5000
    pia,300
    货品清单文件

    更新用户购买程序,实现以下功能:

    1. 用户第一次购买输入薪资;

    2. 用户购买商品信息写入文件;

    3. 用户再次购买先读取之前的购买清单文件,查看余额;

     1 # -*- coding:utf-8 -*-
     2 # LC
     3 import os
     4 product_list = []           #定义商品清单列表
     5 product_line = []           #定义商品清单中每行的列表
     6 user_buy_list = []          #定义用户已经购买商品列表
     7 user_buy_product = []       #定义用户购买单个商品的列表
     8 with open("product_list","r") as f_production:              #读取商品清单列表
     9     for item_production in f_production:
    10         product_line = item_production.rstrip().split(",")
    11         product_list.append(product_line)
    12 
    13 if os.path.getsize("shopping_list") == 0:                       #判断是否为第一次消费,如果消费清单文件为空,则第一次消费
    14     salary = input("Please input your salary:")
    15     balance = int(salary)                                           #将余额定义为薪资
    16 else:
    17     length = len(open("shopping_list","rU").readlines())            #如果不是第一次消费,计算消费清单文件行数,提取消费列表
    18     count = 0
    19     with open("shopping_list", "r") as f_shopping_list:
    20         for shopping_item in f_shopping_list:
    21             count +=1
    22             if 2 <= count <= length-2:                          #去除第一行和最后两行,将消费清单中已购买的商品提取出来
    23                 shopping_item = shopping_item.strip().split()   #将购买的商品转换为列表,包含商品,单价,数量
    24                 user_buy_list.append(shopping_item)             #将已经购买的商品记录至用户消费清单列表中
    25             elif count == length:
    26                 shopping_item = shopping_item.strip().split()
    27                 balance = int(shopping_item[-1])                #如果非第一次消费,则余额为消费清单文件中的余额,提取出来
    28 while True:
    29     print("This is the production list".center(50, "-"))
    30     count = 0
    31     for i in product_list:
    32         print(count, i)
    33         count += 1
    34     user_select = input("Your balance is %d, 's' to start to shopping,'q' to quit : "%(balance))
    35     if user_select == 's':
    36         user_buy_product = []
    37         user_select_index = input("Please select the index of the one you want to buy:")        #输入要购买的商品
    38         user_select_count = input("Please input the number how many you want to buy:")          #输入要购买的商品数量
    39         user_select_index = int(user_select_index)
    40         user_select_count = int(user_select_count)
    41         unit_price = int(product_list[user_select_index][1])                        #要购买的商品单价
    42         product_price = unit_price * user_select_count                              #购买的商品金额,即单价乘以总价
    43         if product_price <= balance:
    44             user_buy_product.append(product_list[user_select_index][0])             #将购买的商品的名称插入新的单个列表中
    45             user_buy_product.append(product_list[user_select_index][1])             #将购买的商品的单价插入新的单个列表中
    46             user_buy_product.append(str(user_select_count))                         #将购买的商品的数量插入新的单个列表中
    47             user_buy_list.append(user_buy_product)                                  #将新购买的商品,包含名称,单价,数量插入用户购买清单中
    48             balance = balance - product_price                                        #将金额出去已经购买的商品金额,以免余额不足
    49         else:                                                                       #购买的商品和数量,余额不足
    50             print("33[1;31mYour choice is out of your money!33[0m")
    51             continue
    52     elif user_select == 'q':
    53         break
    54     else:
    55         print("invalid input ,try again")
    56         continue
    57 
    58 #统计用户购买商品的总金额和消费余额
    59 total_price = 0
    60 for i in user_buy_list:
    61     user_buy_product_price = int(i[1]) * int(i[2])          #用户购买的单个商品的总额,即单件商品的单价乘以数量
    62     total_price = total_price + user_buy_product_price      #统计消费总金额
    63 total_consumption = ["Total_Consumption:"]
    64 balance_list = ["Your balance:"]                            #消费清单上记录余额信息
    65 balance_list.append(balance)
    66 total_consumption.append(total_price)
    67 user_buy_list.append(total_consumption)                     #将总消费金额信息插入用户消费清单中
    68 user_buy_list.append(balance_list)                          #将余额信息插入用户消费清单中
    69 
    70 #将用户购买的商品写入消费清单文件中,并记录总价和余额
    71 with open("shopping_list","w") as f_buy:
    72     f_buy.writelines("product".center(15,"-")+"price".center(15,"-")+"count".center(15,"-")+"
    ")
    73     for i in user_buy_list:
    74         if len(i) == 3:                     #将商品写入
    75             f_buy.writelines(str(i[0]).center(15," ")+str(i[1]).center(15," ")+str(i[2]).center(15," ")+"
    ")
    76         else:                               #将余额和消费总额写入
    77             f_buy.writelines(str(i[0]).ljust(30, " ") + str(i[1]).center(15, " ") + "
    ")
    78 
    79 #打印最终购买清单
    80 print("This is your purchase list".center(45,"-"))
    81 with open("shopping_list","r") as f_read:
    82     for i in f_read:
    83         print(i.strip("
    "))
    用户端程序

    购买清单文件

    ----product---------price----------count-----
          pic             2              20      
          rice            3              50      
         water            32            300      
         phone           5000            2       
          pia            300             50      
         phone           5000            2       
         phone           5000            1       
    Total_Consumption:                 49790     
    Your balance:                       210      
    购买清单文件
  • 相关阅读:
    scrapy安装教程
    【bzoj4200】[Noi2015]小园丁与老司机 STL-map+dp+有上下界最小流
    【bzoj4889】[Tjoi2017]不勤劳的图书管理员 树状数组+分块+二分
    【bzoj4198】[Noi2015]荷马史诗 贪心+堆
    【bzoj2989】数列 KD-tree+旋转坐标系
    【bzoj4212】神牛的养成计划 Trie树+可持久化Trie树
    【bzoj4242】水壶 BFS+最小生成树+倍增LCA
    【bzoj4238】电压 DFS树
    【bzoj4240】有趣的家庭菜园 贪心+树状数组
    【bzoj4237】稻草人 分治+单调栈+二分
  • 原文地址:https://www.cnblogs.com/clv5/p/7042643.html
Copyright © 2011-2022 走看看