zoukankan      html  css  js  c++  java
  • day2 作业

      1 #!/usr/bin/env python
      2 # -*- coding:utf-8 -*-
      3 # Author:kiko0o0
      4 
      5 import os
      6 import sys
      7 #import getpass
      8 
      9 LOCAL_DIR = os.path.dirname(os.path.abspath(__file__))
     10 USER_DB = "%s/%s" % (LOCAL_DIR,"Userinfo.db")
     11 PRODUCT_DB = "%s/%s" % (LOCAL_DIR,"Product.db")
     12 
     13 # 初始化用户[当用户文件不存在时生效]
     14 if os.path.exists(USER_DB):
     15     pass
     16 else:
     17     Userinfo = "admin 123456 0 null 0
    qianwei qian123 0 null 0
    wanli wan123 0 null 0
    total 0 0 0 0"
     18     with open(USER_DB,"w") as w_file:
     19         w_file.write(Userinfo)
     20 
     21 # 初始化产品信息[当产品文件不存在时生效]
     22 if os.path.exists(PRODUCT_DB):
     23     pass
     24 else:
     25     Product = "Iphone 5800
    Macbook 12000
    Bike 800
    Watch 3500
    Coffee 32
    Book 80
    "
     26     with open(PRODUCT_DB,"w") as w_file1:
     27         w_file1.write(Product)
     28 
     29 # 将用户信息生成一个字典
     30 user_info = dict()
     31 with open(USER_DB,"r") as read_file:
     32     for line in read_file:
     33 
     34         if len(line) !=0:
     35             username, password, times, product, balance = line.split()
     36             if username == "total":
     37                 user_info[username] = {"times":int(times)}
     38             else:
     39                 user_info[username] = {"password":password,"times":int(times),"product":product,"balance":int(balance)}
     40 
     41 # 将产品信息生成一个字典
     42 product_info = dict()
     43 with open(PRODUCT_DB,"r") as read_file1:
     44     for line1 in read_file1:
     45         if len(line1) !=0:
     46             product_name,price = line1.split()
     47             product_info[product_name] = {"product_name":product_name,"price":int(price)}
     48 
     49 def write_Productinfo():
     50     global  Productinfo
     51     Productinfo = ""
     52     for product_name in product_info.keys():
     53         productinfo = "%s %s
    " % (product_name,product_info[product_name]["price"])
     54         Productinfo = "%s%s" % (Productinfo,productinfo)
     55     with open(PRODUCT_DB,'w') as w_file1:
     56         w_file1.write(Productinfo)
     57 
     58 def write_userinfo():
     59     global Userinfo
     60     Userinfo = ""
     61     #字符串拼接用户信息
     62     for info in user_info.keys():
     63         if info == "total":
     64             userinfo = "%s %s %s %s %s
    " % (info,0,user_info["total"]["times"],0,0)
     65         else:
     66             userinfo = "%s %s %s %s %s
    " % (info,user_info[info]["password"],user_info[info]["times"],user_info[info]["product"],user_info[info]["balance"])
     67         Userinfo = "%s%s" % (Userinfo,userinfo)
     68     with open(USER_DB,"w") as w_file:
     69         w_file.write(Userinfo)
     70 
     71 def temp_menu_list():
     72     global temp_menu
     73     temp_menu = ""
     74     temp_menu_list_id = []
     75     temp_menu_list_name = []
     76     temp_menu_list_price = []
     77     for item in enumerate(sorted(product_info)):
     78         l_id = item[0]
     79         l_name = item[1]
     80         l_price = product_info[item[1]]["price"]
     81         temp_menu_list_id.append(l_id)
     82         temp_menu_list_name.append(l_name)
     83         temp_menu_list_price.append(l_price)
     84         print(l_id, l_name, l_price)
     85     temp_menu = list(zip(temp_menu_list_id, temp_menu_list_name, temp_menu_list_price))
     86 
     87 def rechange():
     88     print("您的账户余额为:33[1;32m %s 33[0m" % user_info[username]["balance"])
     89     yn = input("请确认本次是否充值,y/n
    >>>:").strip()
     90     flag_salay = False
     91     while not flag_salay:
     92         if yn == "y" or yn == "Y":
     93             while not flag_salay:
     94                 salay = input("请输入本次充值金额:
    >>>:").strip()
     95                 if salay.isdigit():
     96                     salay = int(salay)
     97                     user_info[username]["balance"] += salay
     98                     write_userinfo()
     99                     print("充值成功!您现在的账户余额为:33[1;32m %s 33[0m" % user_info[username]["balance"])
    100                     flag_salay = True
    101                     break
    102                 else:
    103                     print("请输入整数!!!")
    104         elif yn == "n" or yn == "N":
    105             break
    106         else:
    107             print("invalid option")
    108 
    109 print('-'*50)
    110 
    111 menu = ['购物中心','管理后台']
    112 menu_up_list = ['修改商品','添加商品','删除商品']
    113 flag_menu = False
    114 flag_menu_list = False
    115 flag_salay = False
    116 flag_added = False
    117 flag_add_p =False
    118 flag_up = False
    119 flag_del = False
    120 global b
    121 # shopping_list = []
    122 temp_menu_list_id = []
    123 temp_menu_list_name = []
    124 temp_menu_list_price =[]
    125 # TEMP_MENU =[]
    126 
    127 
    128 
    129 while not flag_menu:
    130     for item,m in enumerate(menu):
    131         item +=1
    132         print("	",item,m)
    133     user_choice = input("请选择菜单
    >>>:").strip()
    134     if user_choice == "1":
    135         print("欢迎进入购物中心".center(50,'-'))
    136         if user_info["total"]["times"] < 3:
    137             username = input("input your username
    :>>>").strip()
    138             password = input("input your password
    :>>>").strip()
    139             if username in user_info:
    140                 if user_info[username]["times"] == 3:
    141                     exit("account is lock, Contact the administrator")
    142                 elif password == user_info[username]["password"]:
    143                     print("Good morning %s" % username)
    144                     user_info[username]["times"] = 0
    145                     user_info["total"]["times"] = 0
    146                     write_userinfo()
    147                     rechange()
    148                     while not flag_added:
    149                         print("新上架商品".center(50, '-'))
    150                         temp_menu_list()
    151                         if user_info[username]["product"] == 'null':
    152                             print("目前没有购买物品")
    153                         else:
    154                             print("已经购买了 33[1;32m %s 33[0m" % (user_info[username]["product"]))
    155                         user_choice_num = input('选择要买的物品ID:
    >>>:').strip()
    156                         if user_choice_num.isdigit():
    157                             user_choice_num = int(user_choice_num)
    158                             if user_choice_num < len(product_info) and user_choice_num >= 0:
    159                                 p_item = temp_menu[user_choice_num]
    160                                 if int(p_item[2]) < user_info[username]["balance"]:
    161                                     shopping_list = user_info[username]["product"]
    162                                     shopping_list = shopping_list.strip(',').split(',')
    163                                     shopping_list.append(p_item[1])
    164                                     if shopping_list[0] == 'null':
    165                                         shopping_list.remove('null')
    166                                     shopping_list = ','.join(shopping_list)
    167                                     user_info[username]["product"] = shopping_list
    168                                     user_info[username]["balance"] -=p_item[2]
    169                                     write_userinfo()
    170                                     print("已经购买了33[1;32m %s 33[0m" % (user_info[username]["product"]))
    171                                     print("Added 33[1;32m %s 33[0m into shopping cart, your current blance is 33[1;32m %s 33[0m" % (p_item[1],user_info[username]["balance"]))
    172 
    173                                 else:
    174                                     print("余额不足!")
    175                                     rechange()
    176 
    177                             else:
    178                                 print("没有该商品,请重新选择!")
    179 
    180                         elif user_choice_num == 'q':
    181                             if user_info[username]["product"] == 'null':
    182                                 print("目前没有购买物品")
    183                             else:
    184                                 print("已经购买了 33[1;32m %s 33[0m ,金额剩余 33[1;32m %s 33[0m " %(user_info[username]["product"],user_info[username]["balance"]))
    185                             break
    186                         else:
    187                             print("invalid option")
    188                 else:
    189                     input("Enter to wrong account password. (Any key to continue)")
    190                     user_info[username]["times"] += 1
    191                     user_info["total"]["times"] += 1
    192                     print(user_info['total']['times'])
    193                     write_userinfo()
    194 
    195             else:
    196                 input("Enter to wrong account password. (Any key to continue)")
    197                 user_info["total"]["times"] += 1
    198                 write_userinfo()
    199 
    200 
    201         else:
    202             user_info["total"]["times"] = 0
    203             write_userinfo()
    204             input("Too many retries, please try again later. (Any key to continue)")
    205             exit("88")
    206     elif user_choice == "2":
    207         print("欢迎进入管理后台!")
    208         if user_info["total"]["times"] < 3:
    209             username = input("input your username
    :>>>").strip()
    210             password = input("input your password
    :>>>").strip()
    211             if username in user_info:
    212                 if user_info[username]["times"] == 3:
    213                     exit("account is lock, Contact the administrator")
    214                 elif password == user_info[username]["password"]:
    215                     print("Good morning %s" % username)
    216                     user_info[username]["times"] = 0
    217                     user_info["total"]["times"] = 0
    218                     write_userinfo()
    219                     flag_menu_list = False
    220                     while not flag_menu_list:
    221                         for index,item in enumerate(menu_up_list):
    222                             print('	',index,item)
    223                         menu_up = input('请选择操作项:
    >>>:').strip()
    224                         if menu_up == '0':
    225                             flag_added = False
    226                             while not flag_added:
    227                                 print("当前库存商品如下:")
    228                                 temp_menu_list()
    229                                 choice_up = input("要修改的商品序号:
    >>>:").strip()
    230                                 if choice_up.isdigit():
    231                                     choice_up = int(choice_up)
    232                                     if choice_up < len(product_info) and choice_up >= 0:
    233                                         up_item = temp_menu[choice_up]
    234                                         print(up_item)
    235                                         flag_up = False
    236                                         while not flag_up:
    237                                             choice_up1 = input("请输入修改为多少钱:
    >>>:")
    238                                             if choice_up1.isdigit():
    239                                                 choice_up1 = int(choice_up1)
    240                                                 choice_up1_key = up_item[1]
    241                                                 product_info[choice_up1_key]["price"] = choice_up1
    242                                                 write_Productinfo()
    243                                                 flag_up = True
    244                                                 flag_added = True
    245                                                 temp_menu_list()
    246                                             else:
    247                                                 print("请重新输入")
    248                                     else:
    249                                         print("没有该商品,请重新选择!")
    250                                 else:
    251                                     print("请输入编号!")
    252 
    253                         elif menu_up == '1':
    254                             print("当前库存商品如下:")
    255                             temp_menu_list()
    256                             flag_add_p = False
    257                             while not flag_add_p:
    258                                 choice_add = input("请输入要添加的商品名称
    >>>:").strip()
    259                                 choice_add1 = input("请输入要添加商品的价格
    >>>:").strip()
    260                                 if choice_add1.isdigit():
    261                                     choice_add1 = int(choice_add1)
    262                                     product_info[choice_add] = {"product_name": choice_add, "price": int(choice_add1)}
    263                                     write_Productinfo()
    264                                     flag_add_p = True
    265                                     temp_menu_list()
    266                                 else:
    267                                     print("请重新输入价格")
    268                         elif menu_up == '2':
    269                             flag_del = False
    270                             while not flag_del:
    271                                 print("当前库存商品如下:")
    272                                 temp_menu_list()
    273                                 choice_del = input("请选择要删除商品的序列号
    >>>:").strip()
    274                                 if choice_del.isdigit():
    275                                     choice_del = int(choice_del)
    276                                     if choice_del < len(product_info) and choice_del >=0:
    277                                         del_item = temp_menu[choice_del]
    278                                         del product_info[del_item[1]]
    279                                         write_Productinfo()
    280                                         flag_del = True
    281                                         temp_menu_list()
    282                                     else:
    283                                         print("没有该商品,请重新选择!")
    284                         elif menu_up == 'q':
    285                             break
    286 
    287                         else:
    288                             print('请重新输入')
    289                 else:
    290                     input("Enter to wrong account password. (Any key to continue)")
    291                     user_info[username]["times"] += 1
    292                     user_info["total"]["times"] += 1
    293                     print(user_info['total']['times'])
    294                     write_userinfo()
    295 
    296             else:
    297                 input("Enter to wrong account password. (Any key to continue)")
    298                 user_info["total"]["times"] += 1
    299                 write_userinfo()
    300     elif user_choice == 'q':
    301         break
    302 
    303     else:
    304         print("参数不存在!!!")
    View Code
  • 相关阅读:
    如何查看自己的显卡是否支持DirectX 12
    笔记本屏幕忽然变暗的解决办法
    Python 自动给数字前面补0
    vscode左边侧边栏字体的大小
    .NET 异步详解
    新版 C# 高效率编程指南
    轻松学会 React 钩子:以 useEffect() 为例
    React Hooks 入门教程
    UMI.js开发知识总结
    处理react项目ie11浏览器运行空白问题
  • 原文地址:https://www.cnblogs.com/kiko0o0/p/8245186.html
Copyright © 2011-2022 走看看