我如何在Python字典中查找键:值匹配?

问题描述 投票:0回答:2

重复练习

我正处于 Python 学习的第一周,我正在尝试构建一个接受用户名和密码输入的登录程序。我的代码在图片和下面:

password_db = {
  'David' : 'Helloworld06',
  'Shannon' : 'Python01',
  'John' : 'Whileloop99'
}

password_required = True

while password_required:
  name = input('Please enter your username: ')
  password = input('Please enter your password: ')
  if name in password_db and password in password_db.values():
    print(f'Hey {name}, your password is accepted!')
    break
  else:
    print(f'Your username or password is incorrect {name}, please try again.')

代码在一定程度上有效,但是,我遇到一个问题,即使用户名和密码不匹配,用户输入仍然被接受。我不知道如何解决这个问题。

我尝试写一个 if 语句,但这没有用。我不确定如何编码我正在寻找的内容,输入的用户名和密码是否匹配。

python python-3.x dictionary while-loop
2个回答
0
投票

你很接近。您所要做的就是更改您的 if 语句,如下所示:

if name in password_db.keys() and password in password_db.values():

0
投票

现在,您的 if 条件正在检查用户名是否与任何字典键匹配以及密码是否与任何字典值匹配。您实际上想检查密码是否与有效用户名密钥的值匹配。

if name in password_db and password_db[name] == password:
© www.soinside.com 2019 - 2024. All rights reserved.