Python 使用列表检查用户名和密码

Python 使用列表检查用户名和密码,python,Python,我不知道为什么这段代码不起作用。我有错误类型错误:“int”对象不可编辑我需要代码来检查两个不同列表中的用户名和密码,如果用户名和密码与列表中的点匹配且正确,则用户被“授予访问权限” 问题在于login(),您正在使用i作为自身的迭代器 def login(): username = input("Please enter your username: ") password = input("Please enter your password: ") for i

我不知道为什么这段代码不起作用。我有错误类型错误:“int”对象不可编辑我需要代码来检查两个不同列表中的用户名和密码,如果用户名和密码与列表中的点匹配且正确,则用户被“授予访问权限”


问题在于
login()
,您正在使用
i
作为自身的迭代器

def login():
    username = input("Please enter your username: ")
    password = input("Please enter your password: ")  
    for i in [usernameslist]:
        if username == [i]:
            for j in [passwordslist]:
                if password == [j]:
                    return "Access granted!"
                else:
                    return "Incorrect Login credentials, please try again."
        else:
            return "Incorrect Login credentials, please try again."
这上面应该找到密码,并与您的逻辑工作。 但是,您不应该使用特定的用户名作为密码吗?这是检查用户名和密码是否可用,而不是检查密码是否与用户名匹配。当您分别循环使用密码和用户名时,您只需检查是否有人拥有密码和用户名,无论是不是同一个人。如果是,则替换为:

def login():
    username = input("Please enter your username: ")
    password = input("Please enter your password: ")  
    for i in range(len(usernameslist)):
        if username == i and password == j:
            return "Access granted!"
        else:
            return "Incorrect Login credentials, please try again."
确保两个列表中的用户名和密码顺序相同。或者,我建议存储一个2D列表,如下所示:

list=[[“Annie”,“password1”],[“bob”,“wordpass39”]
其中第一个条目是用户名,第二个是密码

编辑:使用固定的
login()
功能,您现在应该执行以下操作:

def login():
    username = input("Please enter your username: ")
    password = input("Please enter your password: ")  
    for i in range(len(usernameslist)):
        if username == i and password == i:
            print("Access granted!")
        else:
            print("Incorrect Login credentials, please try again.")

它是不返回任何内容还是不打印任何内容?要让函数返回,它需要一个return语句login函数中没有return语句(字面意思),因此它不返回任何内容。它也不会在任何地方被调用,所以它甚至没有运行。当然,函数不会返回任何东西——你永远不会告诉它。您需要将
return[您想要返回的任何内容]
放在函数末尾(或函数中的其他位置),以便函数返回某些内容。@Green我认为他们不想返回,从外观上看,他们将在“授予访问权”的地方编写逻辑。还有其他一些逻辑错误,我认为这就是它不工作的原因。@user我修复了列表,但函数仍然不工作。你能帮助我吗?我是新的密码用户名和密码没有被要求时,我运行程序…任何想法?啊。您没有调用
login()
。只需在程序的最后添加
login()
,就可以了。
def login():
    username = input("Please enter your username: ")
    password = input("Please enter your password: ")  
    for i in range(len(usernameslist)):
        if username == i and password == i:
            print("Access granted!")
        else:
            print("Incorrect Login credentials, please try again.")