题目:完成用户注册/登陆功能。
******************************
操作编码 操作
【0】 注册
【1】 登录
******************************
请输入你要进行的操作编码:
• 注册:
(1)提示用户输入,用户名和密码,其中密码需要输入2次。
提示用户名只能为字母、下划线和数字;密码不能超过8位,密码只能为数字或大小写字母
(2)注册成功后,账户密码记录在文件中 (user.txt)
内容格式可以为 姓名:密码
(3)用户名不能重复。输入用户名重复,需要提示用户重新输入。
--------------注册--------------
请输入用户名:abc
用户名已存在
请重新输入用户名:
(4)检测两次密码如果不同,提示两次密码不一致,
检测两次密码如果相同,确认注册成功。
--------------注册--------------
请输入用户名:abc
请输入密码:123456
请再次输入密码:654321
密码不一致
请再次输入密码:
• 登陆:
(1)用户登录时,进行三次校验,都不对,记录黑名单。
黑名单保存在文件中:blacklist.txt
--------------登陆--------------
请输入用户名:abc
请输入密码:123456
密码不正确
请再次输入密码:654321
密码不正确
您还有1次机会
请再次输入密码:987654
密码3次错误,禁止登陆,请联系管理员。
(2)如果是黑名单的用户,则禁止再次登录
#0 显示菜单信息
import pickle
dict={}
users={}
blacklist={}
def write_file(username,serct):
with open("user.txt", "a") as f:
f.write(username)
f.write(":")
f.write(serct)
f.write("n")
def write_blacklist(username, serct):
with open("blacklist.txt", "a") as f:
f.write(username)
f.write(":")
f.write(serct)
f.write("n")
def check_name(uname):
user_name='1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_'
for i in uname:
if i not in user_name:
return False
return True
def check_code(password):
code1='1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
for i in password:
if i not in code1:
return False
return True
def showMenu():
print('''******************************
操作编码 操作
【0】 注册
【1】 登录
******************************
''')
content=input("请输入你要进行的操作编码:")
return content
#1 输入0.则进行注册
def find(data,name):
for key in data.keys():
if key==name:
return 1
return -1
def regist():
print("--------------注册--------------")
while True:
while True:
name=input("请输入用户名:")
if check_name(name)==False:
print("用户名格式错误")
continue
break
n=find(users,name)
if n==-1:
break
print("用户名已存在,请重新输入!")
while True:
mima1=input("请输入密码:")
if check_code(mima1) == False:
print("密码出现错误字符,重新输入")
continue
elif len(mima1)>8:
print("密码超出长度限制,重新输入")
continue
break
mima2=input("请重新输入密码:")
if mima1==mima2:
dict={name:mima1}
users.update(dict)
print("注册成功")
write_file(name,mima1)
else:
mima2=input("密码不一致,请再次输入密码:")
if mima1 == mima2:
dict = {name: mima1}
users.update(dict)
print("注册成功")
with open("test1.txt", "a") as f:
f.write(name)
f.write(":")
f.write(mima1)
f.write("n")
else:
print("输入的密码有误,请重新注册!")
#2输入1,则进行登录
def login():
print("--------------登陆--------------")
name=input("请输入用户名:")
n=find(users,name)
if n==-1:
print("用户不存在,请注册!")
return 0
for key in blacklist.keys():
if key==name:
print("黑名单用户,禁止登录!")
return 3
mima=input("请输入密码:")
if mima!=users[name]:
print("密码不正确")
mima = input("请输入密码:")
if mima != users[name]:
print("密码不正确,您还有一次机会!")
mima = input("请再输入密码:")
if mima !=users[name]:
print("密码三次错误,已加入黑名单,请联系管理员!")
dict = {name: mima}
blacklist.update(dict)
write_blacklist(name,mima)
else:
print("登录成功!")
return 8
#3输入其他,则提示输入有误
def main():
while True:
keyin=showMenu()
if keyin=='0':
regist()
elif keyin=='1':
x=login()
if x==0 or x==3:
continue
else:
print("输入有误,请重新输入")
if __name__ == '__main__':
main()



