完成用户注册/登陆功能。
******************************
操作编码 操作
[0] 注册
[1] 登录
******************************
请输入你要进行的操作编码:
- 注册:
(1)提示用户输入,用户名和密码,其中密码需要输入2次。
提示用户名只能为字母、下划线和数字;密码不能超过8位,密码只能为数字或大小写字母
(2)注册成功后,账户密码记录在文件中 (user.txt)
内容格式可以为 姓名:密码
(3)用户名不能重复。输入用户名重复,需要提示用户重新输入。
--------------注册--------------
请输入用户名:abc
用户名已存在
请重新输入用户名:
(4)检测两次密码如果不同,提示两次密码不一致,
检测两次密码如果相同,确认注册成功。
--------------注册--------------
请输入用户名:abc
请输入密码:123456
请再次输入密码:654321
密码不一致
请再次输入密码:
- 登陆:
(1)用户登录时,进行三次校验,都不对,记录黑名单。
黑名单保存在文件中:blacklist.txt
--------------登陆--------------
请输入用户名:abc
请输入密码:123456
密码不正确
请再次输入密码:654321
密码不正确
您还有1次机会
请再次输入密码:987654
密码3次错误,禁止登陆,请联系管理员。
(2)如果是黑名单的用户,则禁止再次登录
def register():
print("注册".center(50, "-"))
print("提示用户名只能为字母、下划线和数字;密码不能超过8位,密码只能为数字或大小写字母")
f = open("user.txt", "a+", encoding="utf-8")
f.seek(0)
while True:
count = 0
userName = input("请输入用户名:")
for i in list(userName):
if i.isalnum() or i == "_":
continue
else:
print("用户名只能为字母、下划线和数字")
count += 1
break
for i in f.readlines():
if userName == i.split(":")[0]:
print("用户名已存在")
count += 1
if count == 0:
break
f.close()
while True:
passWord = input("请输入密码:")
if len(passWord) < 9 and passWord.isalnum():
passWord2 = input("请再次输入密码:")
else:
print("格式有误,请输入正确格式")
print("密码不能超过8位,密码只能为数字或大小写字母")
continue
if passWord2 != passWord:
print("密码不一致")
print("请重新输入密码")
else:
print("注册成功")
break
f = open("user.txt", "a", encoding="utf-8")
f.write(f"{userName}:{passWord}")
f.write("\n")
f.close()
def logon():
list1 = []
list2 = []
listBlack = []
f = open("user.txt", "r", encoding="utf-8")
for i in f.readlines():
list1.append(i.split(":")[0].replace("\n", ""))
list2.append(i.split(":")[1].replace("\n", ""))
f.close()
f = open("blacklist.txt", "a+", encoding="utf-8")
f.seek(0)
print("登录".center(50, "-"))
userName = input("请输入用户名:")
for i in f.readlines():
i = i.replace("\n", "")
listBlack.append(i)
if userName in listBlack:
print("账号在黑名单中,请联系管理员")
elif userName not in list1:
print("找不到用户名,请检查用户名是否有误")
print("或重新注册")
else:
count = 3
while True:
passWord = input("请输入密码:")
if userName in list1:
i = list1.index(userName)
if passWord == list2[i]:
print("登录成功")
break
else:
if count == 2:
count -= 1
print("密码错误,请重新输出密码")
print(f"您还有1机会")
continue
elif count == 1:
print("密码3次错误,禁止登陆,请联系管理员。")
f.write(userName)
f.write("\n")
break
else:
count -= 1
print("密码错误,请重新输出密码")
continue
else:
print(f"用户名{userName}不存在")
f.close()
def main():
while True:
print("-" * 30)
print("-" * 2, "操作编码", " " * 12, "操作", "-" * 2)
print("-" * 2, " [0]", " " * 12, "注册", "-" * 2)
print("-" * 2, " [1]", " " * 12, "登录", "-" * 2)
print("-" * 2, " [2]", " " * 12, "退出", "-" * 2)
print("-" * 30)
num = input("请输入你要进行的操作编码:")
if num == "0":
register()
elif num == "1":
logon()
elif num == "2":
break
else:
print("输出有误")
main()