2017-10-08 20 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을 이름 힌트로 사용하면 문자열에서 후행 새 행과 공백을 제거합니다. –