尝试编写一个用户登录程序(这次尝试将功能封装成函数):
---新建用户:N/n---
---登录账号:E/e---
---退出程序:Q/q---
需求一:创建用户时,用户名不可重复
需求二:登录用户时,账号不存在,提示输入账号或密码有误,请重新输入
需求三:登录用户时,如果用户密码或账号输入次数超过3次,则退出程序
user_list = {}
error_count = 0
def creat_account(user_list):
"""
创建新账号
:param user_list:用户清单
:return:user_list
"""
# 循环
while True:
# 请输入要创建的账号
user = input("请输入要创建的账号:")
# 请输入创建账号的密码
pw1 = input("请输入密码:")
# 密码确认,第二次输入密码
pw2 = input("请确认密码:")
# 判断两次密码是否一致
if pw1 != pw2:
print("两次密码不一致,请重新输入:")
continue
# 将账户存入字典
if user not in user_list.keys():
# 判断账号是否已经存在
user_list[user] = pw1
print("注册成功,赶紧试试登录吧")
return user_list
print("此用户名已被使用,请重新输入:")
def login(user_list):
"""
登录账号
:param user_list: 用户清单
:return: None
"""
global error_count
# 用户输入账号和密码
user = input("请输入用户名:")
# 判断输入的用户名是否在用户字典的key中
pw = input("请输入密码:")
if user not in user_list.keys():
error_count += 1
print("账号或密码错误,请重新输入")
return
# 判断密码是否正确
if user_list[user] != pw:
error_count += 1
print("账号或密码错误")
return
print("登录成功")
error_count = 0
# 提示账号或密码输入有误,请重新输入
# 循环
while True:
# 打印欢迎界面
print(
"""
---新建用户:N/n---
---登录账号:E/e---
---退出程序:Q/q---
"""
)
# 用户选择
user_choice = input("请选择你要进行的操作:")
# 判断用户选择
# 创建
if user_choice == 'N' or user_choice == 'n':
user_list = creat_account(user_list)
print(user_list)
# 登录
elif user_choice == 'E' or user_choice == 'e':
login(user_list)
if error_count >= 3:
print("登录次数超限,请稍后再试")
break
# 退出
elif user_choice == 'Q' or user_choice == 'q':
print("程序即将退出")
break
else:
print("输入有误,请重新输入:")