Python 3.x python根据字典检查用户详细信息

Python 3.x python根据字典检查用户详细信息,python-3.x,Python 3.x,我感到沮丧,需要一些帮助。如何对照字典检查给定的用户名和密码组合是否有效?我找到了get模块,但它的问题是: 如果键在字典中,则返回键的值,否则为默认值。如果未给出default,则默认为None,这样该方法就不会引发keyrerror 我也发现了这一点,但代码: usr_pwd = {'adam' : 'Test123', 'alice' : 'Test321'} u_name = input("Please specify your username: ") u_pwd = input("P

我感到沮丧,需要一些帮助。如何对照字典检查给定的用户名和密码组合是否有效?我找到了
get
模块,但它的问题是:

如果键在字典中,则返回键的值,否则为默认值。如果未给出default,则默认为None,这样该方法就不会引发keyrerror

我也发现了这一点,但代码:

usr_pwd = {'adam' : 'Test123', 'alice' : 'Test321'}
u_name = input("Please specify your username: ")
u_pwd = input("Please specify your password: ")
usr_pwd[u_name] = u_pwd
if usr_pwd.get(u_name) == u_pwd:
    print('ok')

不适合我…

有几种常用的方法来检查dict中的信息,每种方法都有自己的位置。这里有一些选择

 if login in users and passw in users: # login matches password
      print "Login successful!\n"

引用文本的“问题”到底是什么?错误的密码看起来正确吗?您可以在
usr\u pwd[u\u name]=u\u pwd
处用提示密码覆盖正确的密码。您需要再次阅读该链接问题<代码>如果在用户中登录,在用户中密码:是错误。在您的示例中,您正在对照一个固定的密码数据库检查密码。您没有任何代码供用户注册新密码,因此不应在任何地方设置密码。由于此代码只进行验证,因此不应将其写入数据库。
get
works。如果删除这一行,现在就有了一个程序,可以根据用户名/密码的固定字典验证密码。如果输入了不存在的用户名,
get
将返回
None
。你的程序将对坏用户名和坏密码一视同仁。非常感谢!我感谢你的帮助。
usr_pwd = {'adam' : 'Test123', 'alice' : 'Test321'}
u_name = input("Please specify your username: ")
u_pwd = input("Please specify your password: ")

# use get
if usr_pwd.get(u_name) == u_pwd:
    print('ok')
else:
    print('user name or password incorrect')

# check first
if u_name in usr_pwd:
    if usr_pwd[u_name] == u_pwd:
        print('ok')
    else:
        print('bad password')
else:
    print('bad user name')

# try and die
try:
    if usr_pwd[u_name] == u_pwd:
        print('ok')
    else:
        print('bad password')
except:
    print('bad user name')