핵심 SET 15 — 정답 및 해설¶
| 문항 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 정답 | ① | ① | ① | ⑤ | ① | ① | ① | ① | ① | ② |
1. 정답 ① 9 27 5 2
power(3)은 exp=2(기본값), mod 없음 → 3**2=9. power(3,3)은 3**3=27. power(exp=1, base=5)는 키워드 인자로 5**1=5. power(10, 2, mod=7)은 10**2=100, mod=7이 있어 100 % 7 = 2.
2. 정답 ① [0, -1, 4, -3, 16, -5]
짝수 인덱스(0,2,4)는 제곱(0,4,16), 홀수 인덱스(1,3,5)는 음수(-1,-3,-5)로 채워집니다.
3. 정답 ① [3, 4, 5] False
enqueue로 [1,2,3,4]가 쌓이고, dequeue() 두 번으로 1, 2가 차례로 빠져나가 [3,4]가 남습니다. enqueue(5)로 [3,4,5]가 되고, 원소가 있으므로 is_empty()는 False.
4. 정답 ⑤ (틀린 설명)
random 모듈에는 random.random()처럼 0.0 이상 1.0 미만의 실수를 반환하는 함수도 있으므로, 모든 함수가 정수만 반환한다는 설명은 틀렸습니다. 나머지 ①~④는 모두 random/math 모듈의 정확한 동작입니다.
5. 정답 ① a 4 ('c', 3)
keys[0]은 'a', values[-1]은 마지막 값인 4. zip(keys, values)로 만든 쌍 리스트의 인덱스 2는 ('c', 3)(키 c와 그에 대응하는 값 3).
6. 정답 ① [[1, 2, 99], [3, 4], [5, 6]] [[1, 2, 99], [3, 4], [5, 6]] [[1, 2, 99], [3, 4], [5, 6], [7, 8]]
a.copy()와 list(a)는 모두 얕은 복사라서 바깥 리스트만 새로 만들고 안쪽 리스트([1,2], [3,4], [5,6])는 원본과 같은 객체를 공유합니다. b[0].append(99)는 공유된 첫 번째 안쪽 리스트를 바꾸므로 a, b, c 모두에서 [1, 2, 99]로 보입니다. c.append([7, 8])는 c의 바깥 리스트에만 새 원소를 추가하므로 a, b에는 영향이 없습니다.
7. 정답 ① ('Su', 'Kim', 3)
"Kim Min Su".split()은 ['Kim', 'Min', 'Su']. first='Kim', last='Su'(마지막 원소), len(parts)=3. 반환값은 ('Su', 'Kim', 3).
8. 정답 ① 3 [2, 3, 4]
이미 있는 2를 다시 add해도 변화 없음. 4를 추가해 {1,2,3,4}. discard(1)로 1을 제거해 {2,3,4}. discard(10)은 없는 값이라 에러 없이 무시됩니다(remove와 달리 discard는 없는 값에도 안전).
9. 정답 ① 1890.0
subtotal = 1000 * 2 * (1 - 0.1) = 1800. tax=0.05를 적용해 1800 * 1.05 = 1890.0.
10. 정답 ② 폴더 안에 __init__.py 파일을 두는 것
패키지로 인식되기 위한 핵심 조건은 폴더 안에 __init__.py(내용이 없어도 됨)가 있는 것입니다.