파이썬 딕셔너리 출력

조회수 3096회

학번과 성적을 입력해서 딕셔너리에 저장하고 다시 학번을 입력해서 그 학번에 해당하는 성적을 출력하게 하려고하는데


def gra(a):

    return

def num(b):

    return


dic={} 

while True:

    c=int(input('Select a menu number>>'))

    if c==1:
        for i in range(10):
            print()
            b=int(input('[%d]번째 학번<종료조건<음수>>: '%(i+1)))
            if b<=0:
                print()
                break
            else:
                print()
                a=int(input(' PL 과목의 성적을 입력하십시오'))
                dic[b]=a
                num(b)
                gra(a)
                print(dic)

    elif c==2:
        print()
        num=input('Input your number: ')
        if num in dic.keys() ==True:
            print('##################################################')
            print('#         :             과목명: PL               #')
            print('#   학번  :--------------------------------------#')
            print('#         :             성적                     #')
            print('#------------------------------------------------#')
            print('# %s:             %d                      #'%(c,dic.get(num)))
            print('##################################################')

이렇게 한 뒤에 실행 시켰더니 

Select a menu number>>1

[1]번째 학번<종료조건<음수>>: 123456

 PL 과목의 성적을 입력하십시오67

{123456: 67}

[2]번째 학번<종료조건<음수>>: -1

Select a menu number>>2

Input your number: 123456

Select a menu number>>

이렇게 실행 되면서 2번 menu를 선택하고 일치하는 학번을 입력했는데 성적 출력이 안 되네요

성적표가 출력이 안되고 메뉴 실행문이 뜨는 이유가 뭘까요


  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • dic 에는 숫자 123456가 키로 들어 있지만, 검색시에는 문자열 "123456" 으로 찾기 때문입니다.


    추가합니다.

    if num in dic.keys() == True:
    

    가 연산자 우선순위 때문에,

    if num in (dic.keys() == True):
    

    로 평가되는 것이 문제입니다.


    덧: visual studio code, pycharm, visual studio + python tools 등의 환경을 사용하면, 디버깅 모드에서 코드를 한줄씩 진행해가면서, 변수들의 값도 확인해 볼 수 있습니다. 편리한 툴을 잘 사용하는 방법도 배우시기 바랍니다.

    • num=input('input your number')를 num=int(input('input your number'))로 고쳤는데도 작동을 안하는데 뭐가 문제일까요? 알 수 없는 사용자 2019.6.20 10:50

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

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

(ಠ_ಠ)
(ಠ‿ಠ)