핵심 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<=10과 min>=1은 항상 True.
5. 정답 ① {'a': 1, 'b': 3, 'c': 5, 'd': 6}
첫 update(d2)로 b가 3, c가 4로 추가됩니다. 두 번째 update(d3)에서 c는 5로 덮어써지고 d가 6으로 새로 추가됩니다.
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)로 banana가 2로 추가됩니다.
10. 정답 ② utils 폴더에 __init__.py 파일이 있어야 한다
utils가 패키지로 인식되어야 from utils.math_utils import add처럼 점(.) 경로로 접근할 수 있으며, 이를 위해서는 __init__.py(내용은 비어 있어도 무방)가 필요합니다.