2017-11-15 8 views
-4

私はログインしているプログラムを作っています。ユーザーの入力に対して入力をチェックします。しかし、それが正しい場合でも、彼らは正しいパスワードが入力されていることを受け入れることはありません。Pythonの2つの変数は同じですが、Pythonはそれらがそうだとは思わない

for i in range(5): 
    existingUsername = input("What is your user name?") 
    if existingUsername in open('logins.txt').read(): 
     with open("logins.txt", "r") as myFile: 
      for num, line in enumerate(myFile, 1): 
       if existingUsername in line: 
        passwordLine = num + 1 
        passwordAttempt = input(str("What is your password?")) 
        passwordText = linecache.getline("logins.txt", passwordLine) 
        if passwordAttempt == passwordText: 
         print("That is correct") 
         quizSelection() 
         break 
        else: 
         print("That doesn't seem to match. Please try again") 

それだけで参照するテキストファイルは、トップ

でHar16で別の行に、それにHar16とGoogleを持っています
+0

passwordTextにスペースやその他の文字が含まれていないことを確認してください。 – SuperStew

+2

ようこそStackOverflowへ。ヘルプドキュメントの投稿ガイドラインを読み、それに従ってください。 [最小、完全で検証可能な例](http://stackoverflow.com/help/mcve)がここに適用されます。 MCVEコードを投稿して問題を正確に記述するまでは、効果的にお手伝いすることはできません。 投稿したコードをテキストファイルに貼り付け、説明した問題を再現できるはずです。 – Prune

+1

'repr(passwordAttempt)'と 'repr(passwordText')を印刷してみてください。それらは同じではありません - コンピュータは横たわっていません – Shadow

答えて

0

passwordText = linecache.getline("logins.txt", passwordLine)を実行すると、ファイルに複数の行がある場合、末尾に\nの文字列が返されることがあります。

関連する問題