콘텐츠로 이동

핵심 SET 09 — 정답 및 해설

문항 1 2 3 4 5 6 7 8 9 10
정답

1. 정답 ① ('Kim', 100.0) *scores(80, 90, 100)으로 묶이고 sum(scores)=270. bonus={"extra": 30}이라 "extra" in bonus가 참이라 total=270+30=300. avg = 300 / 3 = 100.0(실수 나눗셈). 반환값은 튜플 ("Kim", 100.0).

2. 정답 ① 24 8 첫 호출: mode="mul"이라 x*y*z = 2*3*4 = 24. 두 번째 호출: mode를 지정하지 않아 기본값 "add"이고 x=1, y=2, z=51+2+5=8.

3. 정답 ① 4 [1, 2, 4] push(1), push(2), push(3)으로 data=[1,2,3]. pop()3을 꺼내 data=[1,2]. push(4)data=[1,2,4]. peek()은 마지막 원소인 4를 반환(제거하지 않음).

4. 정답 ① 4.0 area_ratio는 두 원의 넓이 비율을 계산합니다. math.pi는 두 식에서 동일하게 곱해지므로 비율은 결국 r1**2 / r2**2 = 16/4 = 4.0. round(4.0, 2)4.0.

5. 정답 ① {'apple': 5, 'kiwi': 4, 'banana': 6, 'cherry': 6} kiwi len(w) > 3 조건으로 "fig"(길이 3)만 제외됩니다. min(lengths, key=lengths.get)은 값이 가장 작은 키를 찾는데, kiwi의 값 4가 가장 작아 kiwi가 반환됩니다.

6. 정답 ① 2 2 [4, 5, 9, 6] a.index(4)는 값 4가 처음 나오는 인덱스 2. a.count(1)1이 두 번 등장하므로 2. 리스트 컴프리헨션은 3보다 큰 값들만 모아 [4, 5, 9, 6](원래 순서 유지).

7. 정답 ① 3 3 1 [2, 2, 3, 2] 4 t.count(2)2가 세 번 등장하므로 3. t.index(3)3의 위치인 3. 확장 언패킹 first, *middle, last = t에서 first=1, last=4, 중간의 나머지 원소들은 리스트로 묶여 middle=[2, 2, 3, 2].

8. 정답 ① True False True False a는 컴프리헨션으로 만든 {0, 2, 4}이고 값이 같은 b==로는 True이지만 다른 객체라 isFalse. c = a는 같은 객체를 가리키므로 a is cTrue. bc는 서로 다른 객체이므로 b is cFalse.

9. 정답 ① [5.0, None, 3.0] 8.0 safe_divide(5, 0)ZeroDivisionError를 잡아 None을 반환합니다. results = [5.0, None, 3.0]. 제너레이터 표현식이 None을 걸러내고 5.0 + 3.0 = 8.0을 합산합니다.

10. 정답 ② 모듈은 .py 파일 하나, 패키지는 그런 모듈들을 묶은 폴더이다 모듈은 코드를 담은 파일 단위, 패키지는 여러 모듈을 묶어 관리하는 폴더 단위(+ __init__.py)입니다.