我如何将值存储到这个dict中,以便在下一次迭代中工作

  • 本文关键字:工作 迭代 一次 存储 dict python
  • 更新时间 :
  • 英文 :


我不知道如何存储从用户输入中获取的值(以生成新的用户名和密码(并将其存储在iassdict中,所以在下一次迭代中它会起作用:

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";以及";董;你的支票将";通过";。

最新更新