왜 keyerror이 뜨는지

조회수 3727회
id = str(input("사용자의 아이디 입력: "))
b = int(input("사용자의 패스워드 입력: "))

dic = {'conan':1111 , 'rose':2222 , 'ran':3333}
passward = dic[id]

if id in dic:        
    if passward == b:
        print("로그인에 성공하셨습니다.")
    else:
        print("비밀번호가 잘못되었습니다.")
else:
    print("등록된 사용자가 아닙니다. 회원 정보를 확인하세요.")

id에 딕셔너리 내부에 있는 값이 아닌 값을 넣었을때 keyerror가 나는 이유

사용자의 아이디 입력: ccc
사용자의 패스워드 입력: 1111
Traceback (most recent call last):
  File "C:\Users\82109\Desktop\로그인프로그램.py", line 8, in <module>
    passward = dic[id]
KeyError: 'ccc'

1 답변

    • 딕셔너리 키, 값 추가하기
    >>> a = {1: 'a'}
    >>> a[2] = 'b'
    >>> a
    {1: 'a', 2: 'b'}
    

    'ccc'란 키가 존재하지 않는 사전에 dic['ccc']이라는 없는 값에 접근하니 키에러가 나고, password 할당문도 성립될 수 없지오.

    y를 먼저 초기화하지 않고 x = y라면 에러가 나는 것처럼...

    그리고 input문의 리턴값은 모두 문자열로 처리되므로 굳이 id에서 str으로 변환시킬 필요는 없음.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)