2017-04-23 35 views
-1
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') 

我感到沮喪,需要一些幫助。如何檢查字典是否和給定用戶名和密碼組合是否有效?我找到了get模塊,但問題在於:python檢查字典的用戶詳細信息

如果鍵在字典中,則返回鍵的值,否則爲默認值。如果未給出默認值,則默認爲None,以便此方法不會引發KeyError。

我還發現這Simple username and password application in Python但代碼:

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

不爲我工作...

+0

什麼是引用文本的「問題」? – DeepSpace

+1

密碼錯誤看起來是否正確?使用提示的密碼在'usr_pwd [u_name] = u_pwd'處覆蓋好密碼。 – tdelaney

+0

您需要再次閱讀該鏈接的問題......「如果用戶登錄並在用戶口令:'是錯誤。 – tdelaney

回答

1

有幾種流行的方式在dict檢查信息,每個人都有自己的地點。這裏有一些選項

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') 
+0

非常感謝!我感謝您的幫助。 – adam86