[Python기초]dictionary 연습

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!


파이썬 dictionary 연습문제


문제1: 해당 딕셔너리를 사용해 각 학생의 성적에 대한 총점과 평균을 계산하여 출력해라.


딕셔너리는 중괄호{} 안에 key:value 형태로 어떠한 변수와 값들이 저장되어있다. for문을 활용해서 딕셔너리에서 원하는 값들을 가져와 계산하여 출력하는 방식이다. 리스트나 튜플과는 다르게 대괄호 안에 인덱스가 아닌 key값을 적는 차이가 있으나, 적응되면 사전 기능을 쉽게 이용할 수 있다.


  • 출력 예시: py10-1


students = [
   {"name" : "홍길동", "korean" : 87, "math" : 98, "english" : 88, "science" : 95},
   {"name" : "이몽룡", "korean" : 92, "math" : 98, "english" : 96, "science" : 98},
   {"name" : "성춘향", "korean" : 76, "math" : 96, "english" : 94, "science" : 90},
   {"name" : "변학도", "korean" : 98, "math" : 92, "english" : 96, "science" : 92},
   {"name" : "박지성", "korean" : 95, "math" : 98, "english" : 98, "science" : 98},
   {"name" : "류현진", "korean" : 64, "math" : 88, "english" : 92, "science" : 92}
]

# 출력 예시에 있는 조건대로 students에 딕셔너리를 만들어준다.
print('이름', '총점', '평균')

# 출력 예시를 보면 1행에 이름, 총점, 평균이 순서대로 나와있다. 그 밑의 값들은 for문을 활용해 출력할 것이기 때문에 이 문자열들을 먼저 적어줬다.
for data in students:
   name = data.get('name')
   tot = data['korean'] + data['math'] + data['english'] + data['science']
   avg = tot/4
   print(name, tot, avg)

# .get('name') 메소드를 사용해 data에서 key값이 'name'인 value들을 name에 저장해준다.
# data의 key 값에 각 과목들을 적어서 tot 변수에 더해준다.
# 과목은 국어,수학,영어,과학 4개 과목이므로, tot를 4로 나눠 avg에 저장해준다.
# 그리고 반복문 내에서 저장해준 변수들을 print문으로 출력해준다.

기존에 풀어왔던 문제들이랑 큰 차이가 없다. 딕셔너리도 대괄호 안에 있기 때문에 for문에서 리스트나 문자열처럼 범위로 사용될 수 있다는 점만 알고 있으면 간단하게 해결할 수 있었다. 코드를 출력해보자.

이름 총점 평균
홍길동 368 92.0
이몽룡 384 96.0
성춘향 356 89.0
변학도 378 94.5
박지성 389 97.25
류현진 336 84.0







문제2: 딕셔너리를 이용해 사용자로부터 영어단어와 뜻을 입력받아 사전을 구성하고, 사용자가 입력한 단어를 검색해 뜻을 출력하는 프로그램을 작성해라.


딕셔너리는 같은 key값에 다른 value를 적용할 수 없다. 그러한 점을 이용하여 문제를 풀 수 있을 것 같다. key와 value 값들을 호출하는 메소드들과 이전에 while문에서 작성했던 프로그램들을 이용하면 될 것 같다.


  • 출력 예시:

py10-2

eng_dict = {}

# 영어사전을 뜻하는 eng_dict라는 변수에 딕셔너리를 생성해준다.
  • 영어사전 단어 등록 프로그램 ```python while True: word = input(‘영어 단어 등록 (종료는 quit) : ‘) if word == ‘quit’: break elif word in eng_dict.keys(): print(f’{word}는 이미 등록된 단어입니다.’) elif word not in eng_dict.keys(): mean = input(f’{word}의 뜻 입력 (종료는 quit) : ‘) eng_dict[word] = mean

먼저 영어 단어와 뜻을 사전에 입력시켜주는 프로그램을 만들어야 한다.

while문을 True:로 설정하여 if제어문을 활용해 특정한 False를 만드는 조건을 적어서 종료하는 기능도 적어줘야 한다.

word를 입력 받고, word가 ‘quit’일 경우에는 while문을 벗어나는 break가 실행되도록 작성해준다.

다음 조건2에는 eng_dict.keys() 메소드를 이용해 이미 존재하는 키 값이면 이미 등록된 단어라는 것을 알려준다.

조건3은 키값들에 입력하는 단어가 존재하지 않는다면 영어사전의 키값에는 word를 value에는 mean을 저장하도록 작성한다.

영어사전 입력 프로그램을 실행해보자. 잘 돌아갈 것이다.

영어 단어 등록 (종료는 quit) : dog dog의 뜻 입력 (종료는 quit) : 개 영어 단어 등록 (종료는 quit) : sky sky의 뜻 입력 (종료는 quit) : 하늘 영어 단어 등록 (종료는 quit) : dog dog는 이미 등록된 단어입니다. 영어 단어 등록 (종료는 quit) : quit


<br>
- 영어사전 검색 프로그램    


```python
while True:
   word = input('검색할 단어 입력 (종료는 quit) : ')
   if word == 'quit':
      print('종료합니다.')
      break
   elif word in eng_dict.keys():
      solve = eng_dict.get(word)
      print(f'{word}의 뜻은 {solve}입니다.')
   elif word not in eng_dict.keys():
      print(f'{word}는 사전에 없는 단어입니다.')

# 단어를 등록하는 사전의 기능과 코드가 크게 다르지 않다.
# 키값에 걸맞는 .get()메소드가 추가된 점이 다를 뿐이다.

검색 프로그램도 실행해보자.

검색할 단어 입력 (종료는 quit) : dog
dog의 뜻은 개입니다.
검색할 단어 입력 (종료는 quit) : sky
sky의 뜻은 하늘입니다.
검색할 단어 입력 (종료는 quit) : cat
cat는 사전에 없는 단어입니다.
검색할 단어 입력 (종료는 quit) : quity
quity는 사전에 없는 단어입니다.
검색할 단어 입력 (종료는 quit) : quit
종료합니다.

2022

[web]jQuery 복습 3

2 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 2

11 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 1

16 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리4

6 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리3

6 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리2

6 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리1

7 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]CSS 기초 정리

9 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]HTML 기초 정리

2 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[Pandas]pandas 연습

3 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑

2021

[Python기초]module

1 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑