为了账号安全,请及时绑定邮箱和手机立即绑定

创建登录系统

创建登录系统

慕侠2389804 2022-06-28 15:37:13
我正在尝试创建一个登录系统。我可以在不实现类和函数的情况下制作系统。我想将每个步骤都变成特定的方法,而不是全部写入一个函数。我的问题是如果字符长度> 5或密码错误,如何恢复登录询问用户名和密码。如果用户名和密码不在列表中,我该如何将其恢复或需要再次编码?    class LoginSystem:        def __init__(self):            self.user_id = input("Please enter your user id: ")            self.user_password = input("Please enter your password: ")        def login(self):            username = self.user_id            password = self.user_password            if len(username) <= 5 and len(password) <= 5:                print("Logging In")            else:                print("Error! Max Length is 5 chars.") #return back to                 login system        def check_system(self):            registered_user = {             "test@gmail.com": "test"            }            if self.user_id in registered_user:                print("Successful")            else:                new_user = input("Id not found! Are you are new user?\n [Y]es or [N]o\n")                new_user = new_user.lower()                if new_user == "Y":                   return back to login system                elif new_user == "N": #how to return back to main login system                   new_username = input("Please enter your user id: ")                   new_userpassword = input("Please enter your password: ")                else:                   return #back to login system
查看完整描述

1 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

您LoginSystem将错误的数据视为其实例属性。注册用户的集合在方法调用中是不变的;该login方法本身应该提示输入用户 ID 和密码。


class LoginSystem:


    def __init__(self):

        self.users = {"test@gmail.com": "test"}


    def login(self):

        while True:

            username = input("Please enter your user id: ")

            password = input("Please enter your password: ")

            if len(username) <= 5 and len(password) <= 5 and self.check_system(username, password):

                print("Logging In")

                break

            else:

                # TODO Disallow infinite retries to get it right

                print("Error! Max Length is 5 chars.")


    def check_system(self, name, password):

        try:

            expected_password = self.registered_user[name]

        except KeyError:

            # Or try to add a new user to the system here

            return False


        if password != expected_password:

            return False


        return True

可以添加一个单独的方法来在必要时将新用户添加到系统中。


查看完整回答
反对 回复 2022-06-28
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信