2017-10-08 9 views
-1

こんにちは私はこのコードを書いていますが、何が間違っているのか分かりません。ユーザー名が間違っていると言います。ユーザ名を正しく入力するとアクセスが拒否されたと言われるのはなぜですか?

ea = input("Do you already have an account") 
if ea == "Yes" or ea == "yes": 
    Ausername = input("Input your username") 
    Apassword = input("Input your password") 

    f=open("login.txt","r") 
    lines=f.readlines() 
    username=lines[0] 

    if (Ausername) == (username): 
     print("Welcome to the quiz") 
    else: 
     print("Access denied") 

    f.close() 

else: 
    name = input("Input your name") 

    yeargroup = input("Input your year group") 

    age = str(input("Input your age")) 

    firstusername = ((name[0]+name[1]+name[2])+(age)) 
    print((firstusername)+(" is your username")) 
    firstpassword = input("Enter what you want your password to be") 
    print(firstusername) 
    print(firstpassword) 


    login = open("login.txt","a") 
    login.write(firstusername + "\n" + name + "\n" + yeargroup + "\n" + age + "\n" + firstpassword + "\n") 
    login.close() 

print("---------------------------------------------------") 
+1

:あなたは大文字小文字を区別しない比較を行いたい場合

if Ausername == username.strip(): ... 

また、あなたはあなたの探索空間のサイズを小さくするためにstr.lowerを使用して小文字にあなたの文字列を変換する必要があります?期待される出力は何か、また、エラートレースバックを投稿してください。 – rkatkam

答えて

2

ファイルデータは、デフォルトで末尾改行で読み込まれます。文字列を比較する前にstr.stripに電話してみましたか?ユーザ名が間違っていることにより、あなたはどういう

if ea.lower() == "yes": 
    ... 
+0

ファイルは書き込み時に追加モードで開かれますが、ユーザー名は 'readlines()[0]'から読み込まれます。私はそれが問題だと思うが、まだコードを通過していない。 – roganjosh

+0

これがうまくいけば、ストリップビットは実際に何を意味するのですか? – Clout

+0

名前のヒントとして@Cloutは、文字列から後続の新しい行と空白を削除します。 –

関連する問題