핵심 SET 03 — 정답 및 해설¶
| 문항 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 정답 | ② | ③ | ③ | ② | ② | ① | ② | ② | ① | ① |
1. 정답 ② 231
키워드 인자는 순서와 무관하게 이름으로 바인딩됩니다. a=2, b=3, c=1 → 2*100 + 3*10 + 1 = 231.
2. 정답 ③ [0, 1]
add_one은 리스트의 내용을 직접 변경(append)하므로 호출자의 리스트에도 반영되어 [0, 1]이 됩니다. 반면 reset은 매개변수 lst를 새 리스트로 재바인딩할 뿐 호출자의 data는 가리키지 않게 되므로 영향이 없습니다. 따라서 최종 data는 [0, 1].
3. 정답 ③ ['apple', 'banana']
items는 클래스 변수로 모든 인스턴스가 같은 리스트를 공유합니다. c1.add와 c2.add 모두 이 하나의 리스트에 추가하므로 c1.items와 c2.items는 동일하게 ['apple', 'banana']입니다.
4. 정답 ② NameError
import math as m은 m이라는 이름으로만 모듈을 가져옵니다. math라는 이름은 존재하지 않으므로 math.pi는 NameError.
5. 정답 ② "b"
딕셔너리 컴프리헨션으로 키와 값을 뒤집으면 {1: "a", 2: "b", 3: "c"}가 됩니다. swapped[2]는 "b".
6. 정답 ① [30] 40
remove(20) → [10, 30, 40]. del a[0] → [30, 40]. pop()은 마지막 원소를 꺼내 반환하므로 x = 40, a = [30].
7. 정답 ② True False
튜플은 사전식(lexicographic)으로 비교합니다. (1,2,3) < (1,2,4)는 세 번째 원소 비교에서 3 < 4이므로 True. (1,3) < (1,2,100)은 두 번째 원소에서 3 > 2이므로 False(첫 비교에서 이미 결과가 결정됨).
8. 정답 ② {1, 2, 3} 다음 KeyError
discard는 원소가 없어도 에러를 내지 않고 조용히 무시합니다. 반면 remove는 원소가 없으면 KeyError를 발생시킵니다.
9. 정답 ① 1 5
min과 max를 튜플로 반환 → (1, 5)를 a, b로 언패킹하면 a=1, b=5. print(a, b)는 1 5.
10. 정답 ① 5
from utils import math_utils는 math_utils라는 모듈 이름 자체를 현재 네임스페이스로 가져오므로, math_utils.add(...)처럼 점(.) 표기로 바로 사용할 수 있습니다.