繁体   English   中英

Python - 1 个字典的键/值匹配

[英]Python - Key / Value matching for 1 dictionary

我正在尝试使用字典来存储用户的凭据。 当使用输入 function 输入用户名时,这应该找到并匹配字典中的任何条目,然后进入下一节输入密码,并再次匹配相应的用户。 但是,我无法让它工作。

请有人对此有所了解 - 任何帮助表示赞赏。

我尝试过的一些事情 - 以及错误:

示例 1

users = {"test1":"password1", "test2":"password2", "test3":"password3"}

def test_login_script():
    username = (input("Enter Username: "))
    if username == users.values():
        passwd = (input("Enter Password: "))
        if passwd == users.keys():
            print("\nLogin Successful!")
        else:
            print("\nPassword is incorrect. Please try again.\n")
            test_login_script()
    else:
        print("\nUsername is incorrect or does not exist. Please try again.\n")
        test_login_script()
test_login_script()

无错误 - 但无法识别用户名。

输入用户名:test1

用户名不正确或不存在。 请再试一次。

输入用户名:

示例 2

def test_login_script():
    username = (input("Enter Username: "))
    if username == users:
        passwd = (input("Enter Password: "))
        if passwd == users:
            print("\nLogin Successful!")
        else:
            print("\nPassword is incorrect. Please try again.\n")
            test_login_script()
    else:
        print("\nUsername is incorrect or does not exist. Please try again.\n")
        test_login_script()
test_login_script()

无错误 - 但无法识别用户名。

输入用户名:test1

用户名不正确或不存在。 请再试一次。

输入用户名:

示例 3

def test_login_script():
    username = (input("Enter Username: "))
    if username == users.get():
        passwd = (input("Enter Password: "))
        if passwd == users.get():
            print("\nLogin Successful!")
        else:
            print("\nPassword is incorrect. Please try again.\n")
            test_login_script()
    else:
        print("\nUsername is incorrect or does not exist. Please try again.\n")
        test_login_script()
test_login_script()

错误消息 - TypeError: 至少得到 1 个参数,得到 0

Traceback(最近一次调用最后一次):文件“为隐私而删除”,第 31 行,在 test_login_script() 文件“为隐私而删除”,第 21 行,在 test_login_script 如果用户名 == users.get():TypeError:至少得到预期1 个参数,得到 0 进程以退出代码 1 结束

对于字典,您应该使用 in 关键字而不是相等运算符并检查密码是否正确,请执行 users[username] == passwd。

users = {"test1":"password1", "test2":"password2", "test3":"password3"}

def test_login_script():
    username = (input("Enter Username: "))
    if username in users:
        passwd = (input("Enter Password: "))
        if users[username] == passwd:
            print("\nLogin Successful!")
        else:
            print("\nPassword is incorrect. Please try again.\n")
            test_login_script()
    else:
        print("\nUsername is incorrect or does not exist. Please try again.\n")
        test_login_script()
test_login_script()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM