我不知道如何存储从用户输入中获取的值(以生成新的用户名和密码(并将其存储在iass
dict中,所以在下一次迭代中它会起作用:
iass = {}
class login:
def __init__(self):
pass
def passcheck(self):
for key, value in iass.copy().items():
if self.username == key and self.password == value:
print("Granted Access")
else:
A = str(input("Enter Desired Name: "))
B = str(input("Enter Desired Password: "))
iass[A] = B
A1 = login()
A1.username = str(input("Enter Username: "))
A1.password = str(input("Password: "))
A1.passcheck()
类/对象的用法有点奇怪。通常,人们会为表示现实世界中的对象(名词(的东西创建一个类。在您的应用程序中,这可能是User。
Login将是该类中的一个方法。
您的方法passcheck的构造也有点奇怪。由于您刚刚要求输入用户名和密码,您可以随时重复使用它们。你不需要再问他们了。我建议您在登录方法中将用户名和密码作为参数传递,而不是直接将它们设置为参数。你的代码可能看起来有点像这个
iass = []
iass.append({'myuser': 'mypwd'})
class User:
def __init__(self):
pass
def login(self, username, password):
for key, value in iass.items():
if username == key and password == value:
print("Granted Access")
return
# User not found, so we're adding him
iass.append({username: password})
A1 = User()
username = str(input("Enter Username: "))
password = str(input("Password: "))
A1.login(username, password)
注意:没有在python解析器中运行这个。可能有一些问题:-(
请在代码上运行pylint。
- 它将在您运行它之前为您发现错误
- 它将提高代码的可读性。这对每个人都有帮助:你自己和其他阅读你代码的人
代码更改:
- 删除
iass.copy()
调用。这是没有必要的;尽管没有创建bug - 为了使代码";工作;您需要使用一个键和值初始化iass:
iass = {"ding": "dong"}
- 移除
else:
块。这导致了一个额外的提示,这只会让人感到困惑,并被视为一个错误
现在当用户输入用户名、密码"时;ding";以及";董;你的支票将";通过";。