用户注册
根据用户输入的用户名来检测,是否存在,如果不存在则让用户输入密码,如果两次密码输入正确,则注册成功
用户登录
根据用户输入的用户名来判断是否属于黑名单用户,如果不属于黑名单用户,则让用户输入密码,密码正确则登录成功,否则返回循环
Python代码
# 读取所有的用户账号密码
userlist = [] # 存放所有的用户名
pwdlist = [] # 存放所有用户密码
with open('user.txt', 'a+', encoding='utf-8') as fp: # a+模式如果没有文件,则新建文件,且指针在最后一行
fp.seek(0) # 把指针移动到文件头部
res = fp.readlines() # 按照每一行读取所有的数据
for i in res: # 循环读取每一行的数据
r = i.strip() # 去掉换行以及两侧的空白
arr = r.split(':') # 按照:将字符串转换成列表
userlist.append(arr[0]) # 将用户名,加入到列表中
pwdlist.append(arr[1]) # 将密码,加入到列表中
# 获取黑名单用户
blacklist=[]
with open('black.txt','a+',encoding='utf-8') as fp:
fp.seek(0) # 把指针移动到文件头部
res = fp.readlines() # 按照每一行读取所有的数据
for i in res: # 循环读取每一行的数据
r = i.strip() # 去掉换行以及两侧的空白
arr = r.split(':') # 按照:将字符串转换成列表
blacklist.append(arr[0]) # 将用户名,加入到列表中
def login():
# 定义变量,控制登录的外循环
islongin = True
errnum = 3
while islongin:
username = input('欢迎登录,请输入用户名:')
# 检测用户是否存在
if username in userlist:
while True:
# 用户名存在让用户输入密码
if username in blacklist:
print('黑名单用户,禁止登陆')
break # 结束内循环
else:
pws = input('请输入密码:')
# 检测用户输入的密码是否正确
# 获取用户名在用户列表中的索引
inx = userlist.index(username) # 获取用户名所在的索引
if pws == pwdlist[inx]:
print('密码正确')
islongin = False # 结束外循环
break # 结束内循环
# 循环结束
else:
errnum -= 1
if errnum == 0:
with open('black.txt','a+',encoding='utf-8') as fp:
fp.write(username+'\n')
print('密码错误次数太多,账号锁定')
break # 结束内循环
elif errnum <= 0:
print('账号锁定')
break # 结束内循环
else:
print(f'密码错误,您还有{errnum}次机会')
else:
print('用户不存在')
def User_register():#账号注册
#定义一个变量来控制外循环
site= True
# 用户输入用户名
while site:
username = input('欢迎注册,请输入用户名:')
if username in userlist:
print('用户名存在,请从新输入')
else:
# 用户名需要检测是否存在
# 循环输入密码,如果都正确则循环结束
while True:
# 请输入密码
pwd = input('请输入密码(大于3位):')
# 检测密码长度是否小于3位
if len(pwd) >= 3:
# 请输入确认密码
repwd = input('请输入确认密码:')
if pwd == repwd:
# 用户名和密码都正确就可以写入文件
# 打开文件,写入数据
with open('user.txt', 'a+', encoding='utf-8') as fp:
fp.write(f'{username}:{pwd}\n')
print(f'注册成功:账号:{username} 密码:{pwd}')
# User_selection()#注册成功后,跳转到用户选择
# 结束循环
# 结束外循环
site = False
#结束内部循环
break
else:
print("两次密码不一致,请从新输入")
else:
print('密码格式不正确')
def User_selection():#根据用户的输入进行相应的操作1.注册 2.登录
while True:
print('[1]注册账号\n[2]登录账号')
user_input=input('请输入您需要的操作:')
if user_input=='1':
User_register()
break
elif user_input=='2':
login()
break
else:
print('输入错误')
User_selection()#用户操作选择界面