Python 用于加载特定用户的登录逻辑

Python 用于加载特定用户的登录逻辑,python,python-3.x,Python,Python 3.x,我试图创建一个登录系统,但加载用户的逻辑不起作用(错误是它不改变密码,它只改变用户如果用户存在,它将打印('login successfull'),无论密码是什么,都无法发现错误) 您在askUserToLoad方法中混淆了一些变量: 如果self.user中的self.enterUsername和self.user[self.enterUsername]==self.enterPassword: 打印('用户成功登录') 其他: 打印('sorry user not found') 您正在将用

我试图创建一个登录系统,但加载用户的逻辑不起作用(错误是它不改变密码,它只改变用户如果用户存在,它将打印('login successfull'),无论密码是什么,都无法发现错误)


您在
askUserToLoad
方法中混淆了一些变量:

如果self.user中的self.enterUsername和self.user[self.enterUsername]==self.enterPassword:
打印('用户成功登录')
其他:
打印('sorry user not found')

您正在将
用户
字典中存储的密码与
self.password
中存储的密码进行匹配。但是用户在登录时输入的密码存储在
self.enterPassword
中。您应该将字典中存储的密码与self中存储的密码匹配。只有在密码正确时才尝试登录,否则登录将失败

if self.enterUsername in self.user and self.user[self.enterUsername] == self.enterPassword:
     print('User Logged in Successfully')
else:
     print('sorry user not found')

我已经修正了你代码的缩进。为了便于将来参考,您需要在每行缩进额外的四个空格,而不仅仅是在第一行缩进四个空格。要轻松完成此操作,请选择整个代码块并按
{}
按钮。无论如何,请仔细考虑您正在进行的比较-您有一个简单的印刷错误。
self.password
来自哪里?
self.user[self.username]
是如何得到它的值的?做这样的比较有意义吗?代码的哪一部分是您要求用户输入密码以登录的部分?您如何命名这次键入的密码?为什么要在self.user中检查
self.enterUsername,然后访问
self.user[self.username]
?这是一个小小的键入错误。我现在改正了。根据self检查密码。如果上次保存的用户名和当前尝试使用的用户名不同,则用户[username]将失败。
if self.enterUsername in self.user and self.user[self.enterUsername] == self.enterPassword:
     print('User Logged in Successfully')
else:
     print('sorry user not found')