• 第三周作业part2


    管理部分:

      1 #!/usr/bin/env python  
      2 #-*- coding:utf-8 -*-
      3 
      4 '''管理员功能区域'''
      5 
      6 import os
      7 def acc_info():
      8     """
      9     :return: 返回account_info.txt中以字典形式{
     10     'msj': '123', 'scg': '123', 'lhy': '123', 'egon': '1234', 'flower': '123', 'fgh': '123', 'hua': '123'}
     11     """
     12     account_info = {}
     13     with open(r'account_info.txt',mode='r',encoding='utf-8') as f:
     14         for line in f:
     15             line = line.strip('
    ')
     16             if line != '':
     17                 u,v = line.split('|')
     18                 account_info[u] = v
     19     return account_info
     20 
     21 def bk_info():
     22     '''
     23     钱和信用额度都是浮点数类型
     24     :return: {'msj': {'pwd': '123', 'money': 4600.0, 'credit': 15000.0}}
     25     '''
     26     bank_user ={}
     27     with open(r'bank_info.txt',mode='r',encoding='utf-8') as f:
     28         for line in f:
     29             line = line.strip('
    ')
     30             if line != '':
     31                 u,p,m,c = line.split('|')
     32                 bank_user[u]={'pwd':p,'money':float(m),'credit':float(c)}
     33         return bank_user
     34 
     35 def select_type():
     36     while True:
     37         choice = input('请输入你想要输入的类型 1.shop 2.bank>>:').strip()
     38         if choice == '1':
     39             return 'shop'
     40         elif choice == '2':
     41             return  'bank'
     42         else:
     43             print('非法操作')
     44             continue
     45 
     46 def is_name():
     47     type = select_type()
     48     if type == 'shop':
     49         user_info = acc_info()
     50     else:
     51         user_info = bk_info()
     52     name = input('please input your username(q to exit)>>:').strip()
     53     if name  in user_info:
     54         return name,type
     55     else:
     56         return False,name,type
     57 
     58 def input_pwd():
     59     pwd = input('请输入密码>>:').strip()
     60     return pwd
     61 
     62 
     63 def check_userinfo():
     64     type = select_type()
     65     if type == 'shop':
     66         user_info =acc_info()
     67     elif type =='bank':
     68         user_info = bk_info()
     69     for k,v in user_info.items():
     70         print('用户名%s'%k,'信息:%s'%v)
     71 
     72 
     73 
     74 def add_user():
     75     """
     76     添加账户
     77     :param name:
     78     :param pwd:
     79     :param type: 账户种类 两种  account  和  bank
     80     :return:
     81     """
     82     info = is_name()
     83     if False in info:
     84         name = info[1]
     85         type = info[2]
     86     else:
     87         print('用户名已存在')
     88         return
     89     pwd = input_pwd()
     90     if type =='shop':
     91         file = 'account_info.txt'
     92         user_info ='%s|%s
    '%(name,pwd)
     93     elif type =='bank':
     94         file = 'bank_info.txt'
     95         user_info ='%s|%s|0|15000
    '%(name,pwd)
     96     else:
     97         print('非法操作2')
     98         return
     99     with open(r'%s'%file,mode='a',encoding='utf-8') as f:
    100         f.write(user_info)
    101 
    102 def alter_credit():
    103     '''
    104     改变账号中的信用额
    105     :param name: 用户名
    106     :param money: int 钱
    107     :return:
    108     '''
    109     name =input('请输入用户名>>:').strip()
    110     user_info = bk_info()
    111     if name not in user_info:
    112         print('用户名不存在')
    113         return
    114     money = input('请输入金额>>:').strip()
    115     if not money.isdigit():
    116         print('输入的金额不对')
    117         return
    118     money = float(money)
    119     user_info[name]['credit']=user_info[name]['credit']+money
    120     # print(user_info[name]['money'])
    121     with open(r'bank_info.txt',mode='w',encoding='utf-8') as f:
    122         for k,v in user_info.items():
    123             msg = '{}|{}|{}|{}
    '.format(k,v['pwd'],v['money'],v['credit'])
    124             f.write(msg)
    125 
    126 def r_hmd(type):
    127     hmd =[]
    128     if type =='shop':
    129         file = 'shop_hmd.txt'
    130     elif type == 'bank':
    131         file ='bank_hmd.txt'
    132     with open(r'%s'%file,mode='r',encoding='utf-8') as f:
    133         for i in f:
    134             i=i.strip('
    ')
    135             if i != "":
    136                 hmd.append(i)
    137     return hmd
    138 
    139 
    140 def add_hmd():
    141     type =select_type()
    142     name = input('输入加入黑名单的用户名>>:').strip()
    143     if type =='shop':
    144         file = 'shop_hmd.txt'
    145         user_inf = acc_info()
    146     elif type == 'bank':
    147         file ='bank_hmd.txt'
    148         user_inf = bk_info()
    149     if name not in user_inf:
    150         print('用户不存在')
    151         return
    152     hmd = r_hmd(type)
    153     if name in hmd:
    154         print('用户名已存在黑名单')
    155         return
    156     with open(r'%s'%file,mode='a',encoding='utf-8') as f:
    157         f.write('%s
    '%name)
    158     print('%s 已加入黑名单')
    159 
    160 
    161 
    162 def read_hmd():
    163     type = select_type()
    164     res =r_hmd(type)
    165     print(res)
    166 
    167 def del_hmd():
    168     type = select_type()
    169     name = input('想要删除的黑名单>>:').strip()
    170     hmd  = r_hmd(type)
    171     if name not in hmd:
    172         print('用户不在黑名单')
    173         return
    174     if type =='shop':
    175         file = 'shop_hmd.txt'
    176     elif type == 'bank':
    177         file ='bank_hmd.txt'
    178     with open(r'%s'%file, mode='r', encoding='utf-8') as rf,
    179             open(r'%s.swap'%file, mode='w', encoding='utf-8') as wf:
    180         for line in rf:
    181             if name == line.strip('
    '):
    182                 line = ''
    183             wf.write(line)
    184     os.remove('%s'%file)
    185     os.rename('%s.swap'%file,'%s'%file)
    186 
    187 
    188 
    189 msg = """
    190     1、增加用户
    191     2、增加额度
    192     3、查看用户信息
    193     4、增加黑名单
    194     5、查看黑名单
    195     6、删除黑名单
    196     0、退出
    197 """
    198 dic ={
    199     '1':add_user,
    200     '2':alter_credit,
    201     '3':check_userinfo,
    202     '4':add_hmd,
    203     '5':read_hmd,
    204     '6':del_hmd,
    205 }
    206 
    207 def admin():
    208     while True:
    209         print(msg)
    210         choice = input('请输入你的操作>>:')
    211         if choice == '0':
    212             print('exit')
    213             return
    214         elif choice in dic:
    215             dic[choice]()
    216         else:
    217             print('非法操作')
    218             continue
    219 
    220 admin()
  • 相关阅读:
    MySql查询分页数据
    出现不不能引java.util.Date包的情况
    类的反射实例(servlet的抽取)
    关于C++ const 的全面总结
    教你用笔记本破解无线路由器password
    使用 HTML5 webSocket API实现即时通讯的功能
    用户研究经验分享
    我的学习笔记_Windows_HOOK编程 2009-12-03 11:19
    用户參与记录存储的演变
    IC芯片
  • 原文地址:https://www.cnblogs.com/msj513/p/9737352.html
Copyright © 2020-2023  润新知