1.员工管理系统V1.0版本
# 超级权限
root_name = 'alan'
root_pwd = '123'
# 认证登录,登录一次即可
is_login = {'is_login': False}
# 构建装饰器,添加一个认证功能
def out_func(func_name):
def inner_func(*args, **kwargs):
# 判断是否认证过,若认证过了,直接运行被装饰的函数
if is_login.get('is_login'):
get_return = func_name(*args, **kwargs)
print('>>>>>>')
return get_return
print('需要管理员认证后才能继续操作')
user_name = input('请输入管理员账号>>>').strip()
user_pwd = input('请输入管理员密码>>>').strip()
# 对比管理员数据
if user_name == root_name and user_pwd == root_pwd:
is_login['is_login'] = True
get_return = func_name(*args, **kwargs)
return get_return
else:
print('账号密码错误,认证失败!!!')
return inner_func
# 注册
def sign(*args, **kwargs):
print('注册中......')
print('注册界面'.center(50, '*'))
# 获取用户输入的注册信息
user_name = input('请输入注册名>>>').strip()
user_pwd = input('请设置密码>>>').strip()
user_id = input('员工编号>>>').strip()
# 信息格式化
user_info = '%s|%s|%s' % (user_name, user_pwd, user_id)
with open(r'info.txt', 'r', encoding='utf8') as read_f:
# 将文件信息转换成列表
for one_line in read_f:
real_name, real_pwd, real_id = one_line.split('|')
real_id = real_id.strip('\n')
if user_id == real_id:
print('%s编码已存在' % real_id)
break
else:
with open(r'info.txt', 'a', encoding='utf8') as append_f:
append_f.write(user_info + '\n')
print(f'{user_name}注册成功!')
# 登录
def login(*args, **kwargs):
print('登录中......')
print('登录界面'.center(50, '*'))
# 获取用户登录信息
login_name = input('请输入用户名>>>').strip()
login_pwd = input('请输入密码>>>').strip()
# 对比信息
with open(r'info.txt', 'r', encoding='utf8') as f:
for line in f:
real_name, real_pwd, real_id = line.split('|')
if login_name == real_name and login_pwd == real_pwd:
print('登录成功!')
break
else:
print('用户或者密码错误')
# 查看员工,需要高级权限,语法糖
@out_func
def index_info(*args, **kwargs):
# 查看全员信息还是个人信息
input_cmd = input('需要查看全员信息还是个人信息(all/one)>>>')
if input_cmd == 'all':
print('👇全员信息如下👇'.center(50, '👇'))
with open(r'info.txt', 'r', encoding='utf8') as f:
for line in f:
print(line.strip())
elif input_cmd == 'one':
find_name = input('请输入员工姓名')
with open(r'info.txt', 'r', encoding='utf8') as f:
for line in f:
real_name, real_pwd, real_id = line.split('|')
if find_name == real_name:
print(line)
break
# 如果不倒缩进,会打印两次
else:
print('没有该员工')
else:
print('输入有误,请重新输入')
index_info(*args, **kwargs)
# 管理员添加员工信息
@out_func
def insert_info(*args, **kwargs):
print('添加用户信息中---')
print('添加界面'.center(50, '*'))
# 输入用户信息
user_name = input('请输入员工姓名>>>').strip()
user_pwd = input('请设置密码>>>').strip()
user_id = input('请输入员工编号>>>').strip()
user_info = '%s|%s|%s' % (user_name, user_pwd, user_id)
cmd = input('请用户确认信息%s(y/n)>>>' % user_info)
if cmd == 'y':
with open(r'info.txt','r',encoding='utf8') as f:
for line in f:
real_name,real_pwd,real_id = line.split('|')
if user_id == real_id:
print('该用户编号已存在,请重新输入')
break
else:
with open(r'info.txt','a',encoding='utf8') as f1:
f1.write(user_info + '\n')
print('添加%s成功!!' % user_name)
else:
print('请重新输入>>>')
insert_info(*args, **kwargs)
# 管理员删除员工
@out_func
def del_info(*args, **kwargs):
print('删除界面'.center(50, '×'))
del_name = input('请输入需要删除的员工姓名').strip()
with open(r'info.txt', 'r+t', encoding='utf8') as f:
for line in f:
if del_name in line:
continue
f.write(line + '\n')
print(f'员工{del_name}删除成功')
# 搭建系统框架
func_dic = {
'1': sign,
'2': login,
'3': index_info,
'4': insert_info,
'5': del_info,
'q': exit
}
while True:
print('''
1.员工注册
2.员工登录
3.查看员工信息
4.添加员工
5.删除员工
q.退出系统
''')
choice = input('请输入需要执行的功能编号>>>').strip()
if choice in func_dic:
if choice == 'q':
print('退出系统')
break
else:
func_name = func_dic.get(choice)
func_name()
else:
print('请按提示输入功能编号>>>')
2.函数使用次数计数器
def out_func(func):
def inner_func(*args, **kwargs):
with open(r'a.txt', 'r', encoding='utf8') as f:
count = f.read()
count = int(count)
func()
count += 1
with open(r'a.txt', 'w', encoding='utf8') as f:
f.write('%s' % count)
print('函数已运行%s次' % count)
return inner_func
@out_func
def func(*args, **kwargs):
pass
func()