[英]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.