콘텐츠로 이동

핵심 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(내용이 없어도 됨)가 있는 것입니다.