딕셔너리를 이용한 로그인 오류. 숫자 비밀번호 일치여부가 제대로 되지 않음.
조회수 1657회
딕셔너리를 이용한 로그인 프로그램을 만들고 싶어서 회원에 맞는 비밀번호를 적고, 이름이 들어가 있는지, 그 회원의 비밀번호가 일치한 지 확인하는 프로그램을 만들었어요.
딕셔너리 안에 이름의 유무는 확인이 되는데, 회원 이름과 비밀번호를 일치하는 과정에서 무언가 잘못된 거 같아요. 비밀번호가 일치하는 지 제대로 확인되게 도와주실 수 있나요?
member={"A":4534,"B":2121,"C":1223,"D":2342,"E":8845}
print("회원 전용 창입니다.")
while(True):
name=input("본인의 이름을 입력하세요 : ")
if name in member:
password=input("비밀번호를 입력해주세요 : ")
if password==(member[name]):
print(name,"님 환영합니다")
print("회원님의 남은 시간은 %d 개월 입니다"%day[name])
break
else:
print("비밀번호가 맞지 않습니다")
else:
print(name,"님은 저희 회원이 아니십니다")
본인의 이름을 입력하세요 : A
비밀번호를 입력해주세요 : 4534
비밀번호가 맞지 않습니다
본인의 이름을 입력하세요 : ㅇㄴㄹㅇ
ㅇㄴㄹㅇ 님은 저희 회원이 아니십니다
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
파이썬에서
input
으로 입력을 받을 경우 해당 값은 문자열로 저장됩니다.그리고 문자열과 정수에
==
연산을 수행할 경우 무조건False
를 반환합니다.따라서 입력받은 비밀번호를 정수로 바꿔주도록 코드를 수정하면 됩니다.
member={"A":4534,"B":2121,"C":1223,"D":2342,"E":8845} print("회원 전용 창입니다.") while(True): name=input("본인의 이름을 입력하세요 : ") if name in member: password= int(input("비밀번호를 입력해주세요 : ")) if password == member[name]: print(name,"님 환영합니다") print("회원님의 남은 시간은 %d 개월 입니다"%day[name]) break else: print("비밀번호가 맞지 않습니다") else: print(name,"님은 저희 회원이 아니십니다")
댓글 입력