콘텐츠로 이동

핵심 SET 12 — 정답 및 해설

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

1. 정답 ① [alert![alert! suffix="!", repeat=2이므로 prefix + text + suffix = "[alert!"이고, 이를 2번 반복한 문자열 "[alert![alert!"이 반환됩니다.

2. 정답 ① 0 error reset()global count로 전역 변수를 0으로 만들고 반환하므로 0이 출력됩니다. increment()count = count + 1이 대입문이라 count를 지역변수로 취급하는데, 우변을 읽을 때 아직 정의되지 않아 UnboundLocalError가 발생하고 except에서 "error"를 출력합니다.

3. 정답 ① 73.4 adjust(5)celsius=25, adjust(-2)celsius=23이 됩니다. to_fahrenheit()23 * 9 / 5 + 32 = 41.4 + 32 = 73.4.

4. 정답 ① 5 True True 리스트 컴프리헨션이 정확히 5번 반복되므로 길이는 5. random.randint(1, 10)은 항상 1~10 범위이므로 max<=10min>=1은 항상 True.

5. 정답 ① {'a': 1, 'b': 3, 'c': 5, 'd': 6}update(d2)b3, c4로 추가됩니다. 두 번째 update(d3)에서 c5로 덮어써지고 d6으로 새로 추가됩니다.

6. 정답 ① [9, 8, 5] [9, 8, 5, 3, 2, 1] sort()[1,2,3,5,8,9]가 되고 reverse()[9,8,5,3,2,1]이 됩니다. 이때 b = a[:3] = [9, 8, 5](새 리스트로 복사). 이어서 a.sort(reverse=True)로 내림차순 정렬해도 이미 [9,8,5,3,2,1]은 내림차순이라 그대로 유지됩니다.

7. 정답 ① [(3, 1), (1, 2), (0, 4), (2, 5)] key=lambda p: (p[1], p[0])는 두 번째 원소를 우선 기준으로, 같으면 첫 번째 원소로 정렬합니다. 두 번째 값 기준 1, 2, 4, 5 순서대로 정렬되어 [(3,1), (1,2), (0,4), (2,5)].

8. 정답 ① {1, 3, 5} a ^ b = {1, 4}(서로 한쪽에만 있는 값). 이어서 {1, 4} ^ {3, 4, 5}를 계산하면 1(첫 집합에만), 3(두 번째에만), 4(양쪽에 모두 있어 제거), 5(두 번째에만) → {1, 3, 5}.

9. 정답 ① {'apple': 4, 'banana': 2} add("apple", 5)5, add("apple", 3)5+3=8. remove("apple", 4)8>=4라 성공해 8-4=4. add("banana", 2)banana2로 추가됩니다.

10. 정답 ② utils 폴더에 __init__.py 파일이 있어야 한다 utils가 패키지로 인식되어야 from utils.math_utils import add처럼 점(.) 경로로 접근할 수 있으며, 이를 위해서는 __init__.py(내용은 비어 있어도 무방)가 필요합니다.