WeniVooks

검색

견고한 파이썬

연습문제

1번 문제

다음은 python 강좌 학생들의 시험 점수를 딕셔너리로 나타낸 것입니다.

student_score = {
		'홍의': 97,
		'원희': 60,
		'동해': 77,
		'변수': 79,
		'창현': 89,
}
student_score = {
		'홍의': 97,
		'원희': 60,
		'동해': 77,
		'변수': 79,
		'창현': 89,
}
  • 학생들의 총점을 구하는 코드를 작성하세요.
  • 학생들의 평균 점수를 구하는 코드를 작성하세요.
  • 호준: 98 점수가 추가되었습니다. 이 점수를 반영하여 학생들의 평균 점수를 구해주세요.
  • 문제가 하나 잘못 출제되어 모두 2점이 올랐습니다. 학생들의 모든 점수를 2점씩 올려주세요.
  • 점수가 가장 높은 학생의 이름과 그 점수를 구하는 코드를 작성하세요.
  • 점수가 가장 낮은 학생의 이름과 그 점수를 구하는 코드를 작성하세요.

2번 문제

학생 7명이 같이 먹을 점심 메뉴를 고르려고 합니다. 학생들의 각자 좋아하는 메뉴와 싫어하는 메뉴를 likedislike 리스트에 담았습니다.

like = ['볶음밥', '라면', '국수', '파스타', '치킨', '짜장면', '국밥']
dislike = ['국밥', '짬뽕', '찜닭', '파스타', '국수', '카레', '덮밥']
like = ['볶음밥', '라면', '국수', '파스타', '치킨', '짜장면', '국밥']
dislike = ['국밥', '짬뽕', '찜닭', '파스타', '국수', '카레', '덮밥']

학생들은 점심 메뉴를 고를 때, 한 명이라도 싫어하는 메뉴라면 고르지 않기로 했습니다. 최종 후보 메뉴들의 리스트를 구하는 코드를 작성해주세요.

3번 문제

주어진 리스트 data = [{"이름": "길동", "수학": 3, "과학": 93}, {"이름": "춘향", "수학": 33, "과학": 11}, {"이름": "철수", "수학": 94, "과학": 67}]에서 평균점수가 가장 높은 학생의 이름을 출력하세요.

4번 문제

주어진 사전 grades = {"Tom": 87, "Jerry": 95, "Mickey": 70}의 모든 값을 5점씩 증가시키고 결과를 출력하세요.

5번 문제

주어진 문자열 s = "apple banana apple cherry banana cherry apple"에서 가장 자주 등장하는 단어를 출력하세요.


답안

  1. code
  • 학생들의 총점을 구하는 코드를 작성하세요.
    total_score = sum(student_score.values())
    print(f'학생들의 총점은 {total_score}입니다.')
    total_score = sum(student_score.values())
    print(f'학생들의 총점은 {total_score}입니다.')
  • 학생들의 평균 점수를 구하는 코드를 작성하세요.
    average_score = sum(student_score.values()) / len(student_score)
    print(f'학생들의 평균 점수는 {average_score}입니다.')
    average_score = sum(student_score.values()) / len(student_score)
    print(f'학생들의 평균 점수는 {average_score}입니다.')
  • 점수가 가장 높은 학생의 이름과 그 점수를 구하는 코드를 작성하세요.
    max_name = max(student_score, key=student_score.get)
    max_score = student_score[max_name]
    print(f'점수가 가장 높은 학생은 {max_name}이며, 그 점수는 {max_score}점입니다.')
    max_name = max(student_score, key=student_score.get)
    max_score = student_score[max_name]
    print(f'점수가 가장 높은 학생은 {max_name}이며, 그 점수는 {max_score}점입니다.')
  • 점수가 가장 낮은 학생의 이름과 그 점수를 구하는 코드를 작성하세요.
    min_name = min(student_score, key=student_score.get)
    min_score = student_score[min_name]
    print(f'점수가 가장 낮은 학생은 {min_name}이며, 그 점수는 {min_score}점입니다.')
    min_name = min(student_score, key=student_score.get)
    min_score = student_score[min_name]
    print(f'점수가 가장 낮은 학생은 {min_name}이며, 그 점수는 {min_score}점입니다.')
  1. code
like = ['볶음밥', '라면', '국수', '파스타', '치킨', '짜장면', '국밥']
dislike = ['국밥', '짬뽕', '찜닭', '파스타', '국수', '카레', '덮밥']
 
final_menu = []
 
for menu in like:
    if menu not in dislike:
        final_menu.append(menu)
 
print(final_menu)
like = ['볶음밥', '라면', '국수', '파스타', '치킨', '짜장면', '국밥']
dislike = ['국밥', '짬뽕', '찜닭', '파스타', '국수', '카레', '덮밥']
 
final_menu = []
 
for menu in like:
    if menu not in dislike:
        final_menu.append(menu)
 
print(final_menu)
  1. code
data = [
    {"이름": "길동", "수학": 3, "과학": 93},
    {"이름": "춘향", "수학": 33, "과학": 11},
    {"이름": "철수", "수학": 94, "과학": 67}
]
max_entry = max(data, key=lambda x: x["수학"]+x["과학"])
print(max_entry)
print(max_entry["이름"])
data = [
    {"이름": "길동", "수학": 3, "과학": 93},
    {"이름": "춘향", "수학": 33, "과학": 11},
    {"이름": "철수", "수학": 94, "과학": 67}
]
max_entry = max(data, key=lambda x: x["수학"]+x["과학"])
print(max_entry)
print(max_entry["이름"])
  1. code
grades = {"Tom": 87, "Jerry": 95, "Mickey": 70}
# grades.update({'Tom': grades.get('Tom', 0) + 5})
# grades.update({'Jerry': grades.get('Jerry', 0) + 5})
# grades.update({'Mickey': grades.get('Mickey', 0) + 5})
updated_grades = {name: score + 5 for name, score in grades.items()}
print(updated_grades)
grades = {"Tom": 87, "Jerry": 95, "Mickey": 70}
# grades.update({'Tom': grades.get('Tom', 0) + 5})
# grades.update({'Jerry': grades.get('Jerry', 0) + 5})
# grades.update({'Mickey': grades.get('Mickey', 0) + 5})
updated_grades = {name: score + 5 for name, score in grades.items()}
print(updated_grades)
  1. code
s = "apple banana apple cherry banana cherry apple"
words = s.split()
most_frequent_word = max(set(words), key=words.count)
print(most_frequent_word)
 
#######
 
from collections import Counter
 
s = "apple banana apple cherry banana cherry apple"
result = Counter(s.split())
result.most_common()
result.most_common(1)
s = "apple banana apple cherry banana cherry apple"
words = s.split()
most_frequent_word = max(set(words), key=words.count)
print(most_frequent_word)
 
#######
 
from collections import Counter
 
s = "apple banana apple cherry banana cherry apple"
result = Counter(s.split())
result.most_common()
result.most_common(1)
{"packages":["numpy","pandas","matplotlib","lxml"]}
6.5 셋7장 함수