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
  • 相关阅读:
    Trapping Rain Water
    Construct Binary Tree from Preorder and Inorder Traversal
    Flatten Binary Tree to Linked List
    Permutations II
    Unique Paths II
    Path Sum II
    Unique Binary Search Trees II
    evdev module-----uinput.py
    evdev module-----events.py
    evdev module-----device.py
  • 原文地址:https://www.cnblogs.com/kiko0o0/p/8245186.html
Copyright © 2011-2022 走看看