딕셔너리 사용방법
조회수 689회
점수 학점
81~100 A
61~80 B
41~60 C
21~40 D
0~20 E
score: 83
grade is A
의 형식을 나타내려고 합니다. if,elif 구문으로 문제를 해결할 수 있지만 혹시 딕셔너리의 방법으로도 만들수 있나 시도를 해보았습니다
그래서 key값을 통한 value로 학점을 얻기 위해서
user_in = input('score:')
grade = { tuple(range(81,101)): 'A' , tuple(range(61,81)):'B'..... }
if user_in in grade.keys():
print('grade is',grade[user_in])의 형식으로 나타냈습니다.
key 값에는 변하지 않는 값을 넣어야 된다고 해서 튜플값을 넣었지만 오류가 나옵니다. 제가 어떤 부분에서 잘못 된건지 잘 몰라서 도움을 구하고자 여기에 올려봅니다...... 딕셔너리로 안된다면 다른 방법은 뭐가 있는지도 추가로 알려주시면 정말 감사하겠습니다. 파이썬 시작한지 얼마 안돼서 자세한 부탁드려요 ㅠㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자
3 답변
-
tbl = { -1:'E', 0:'E', 1:'D', 2:'C', 3:'B', 4:'A' } user_in = int(input('your score')) print('your grade is ', tbl[(user_in-1)//20])
-
아스키 코드를 이용한 구현 방법도 있습니다.
user_in = int(input('score:')) print('E' if (user_in is 0) else (chr(69 - (user_in - 1) // 20)))
-
이렇게 range 함수를 이용할수도 있습니다.
>>> d = dict(zip(range(-1, 10), ('E', 'E', 'D', 'C', 'B', 'A'))) >>> d {-1: 'E', 0: 'E', 1: 'D', 2: 'C', 3: 'B', 4: 'A'}
댓글 입력