2017-06-07 20 views
1

既存のユーザーのための簡単なログインスクリプトを作成したいと思います。辞書を作成しましたが、コードが機能しません。辞書からデータを読み込んで確認したい

私は次のことを試してみた:

d = {'apple':'red','green':'lettuce','yellow':'lemon','orange':'orange'} 
print "Please enter your username: " 
user_name = raw_input() 
print "Please enter your password: " 
password = raw_input 
for user_name,password in d: 
    if user_name in d and password in d: 
     print "great" 
    else: 
     print "Password incorrect!" 

コードは動作しません、私はいつも間違ったパスワードを取得します。

+1

'password = raw_input'あなたそこにraw_inputが呼び出されていません。 – Lafexlos

+1

これは実際のコードですか?あなたは 'ValueError'例外を' for user_name、password in d: '行に入れてください。 –

答えて

1
d = {'apple':'red','green':'lettuce','yellow':'lemon','orange':'orange'} 

user_name = raw_input() #apple 
password = raw_input() # red 

if user_name in d.keys(): 
    #check if username: apple == password : red (key=value) 
    if password == d.get(user_name) 
     print "great" 
    else: 
     print "Password incorrect!" 
+0

' .keys() 'は不要です –

+1

そして、この全部は' print 'great' )==パスワードelse 'パスワードが間違っています!' ' –

0

あなたは間違ってやっているいくつかのものがあります:

  • あなたはプレーンテキストでパスワードを保存している
  • パスワードにraw_input()を呼び出していないが
  • raw_string()あなたのprintステートメント
  • あなたがuser_name /パスワードがであるかどうかをチェックしています。しかし、あなたは実際にはkeyのusernameと価値のあるパスワードを探すべきです。 user_namepasswordは既にforループの上に定義されており、forループが完全に間違っています。

ので、簡単な解決策は次のようになります。

d = {'apple': 'red', 'green': 'lettuce', 'yellow': 'lemon', 'orange': 'orange'} 

user_name = raw_input("Please enter your username: ") 
password = raw_input("Please enter your password: ") 

if password == d.get(user_name): 
    print True 
else: 
    print False 
+0

ありがとう、とても役に立ちました – Meirshalom

0

あなたが行でエラーが表示されます: "Dでuser_nameのパスワードを:"

Python ValueError: too many values to unpack

正しいコード意志be:

d = {'apple':'red','green':'lettuce','yellow':'lemon','orange':'orange'} 
print "Please enter your username: " 
user_name = raw_input() 
print "Please enter your password: " 
password = raw_input() 
for user,passw in d.iteritems(): 
    if user == user_name and password == passw : 
     print "great" 
     exit(0) 
print "Password incorrect!" 
関連する問題