파이썬 딕셔너리 출력
조회수 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
댓글 입력