SET 06 — 정답 및 해설¶
| 문항 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 정답 | ① | ② | ① | ② | ② | ① | ② | ② | ② | ② |
1. 정답 ① fedc
[5:1:-1]은 인덱스 5부터 1은 미포함, 끝(1+1=2)까지 −1씩 거꾸로: 인덱스 5(f),4(e),3(d),2(c) → fedc.
2. 정답 ② 15
3 ** 2 = 9 → 2 * 9 = 18, 10 // 3 = 3. 18 - 3 = 15.
3. 정답 ① 19 8
i=1,2→result=3, i=3→continue, i=4,5→result=12, i=6→continue, i=7→result=19, i=8→i>7이라 break. 출력 19 8.
4. 정답 ② 3
break는 안쪽 루프만 종료. i=0: 바로 break(0). i=1: j=0에서 1 더하고 j=1 break(1). i=2: j=0,1에서 2 더하고 break(2). 합 0+1+2 = 3.
5. 정답 ② [1, 2, 99]
b = a는 같은 리스트를 가리키는 별칭(alias). b.append(99)가 원본 x도 바꿈 → [1, 2, 99].
6. 정답 ① 1 2
a 생성 시 data = [0]이라 a.x = 1. 그 뒤 append(1)로 data = [0, 1]. b 생성 시 b.x = len([0, 1]) = 2.
7. 정답 ② finally
return "try"를 실행하려는 순간에도 finally가 먼저 실행되는데, finally에 return이 있으면 그 값이 최종 반환값이 됨 → "finally".
8. 정답 ②
random.shuffle은 list.sort처럼 원본을 제자리에서 섞고 None을 반환합니다. 반환값을 변수에 담으면 None이 들어가는 함정.
9. 정답 ② [[0, 5], [0, 5]]
grid = [row, row]는 같은 리스트 row를 두 번 담음. grid[0][1] = 5로 row를 바꾸면 두 칸 모두 반영 → [[0, 5], [0, 5]].
10. 정답 ② [1, 2] [1]
d["a"]와 d["b"]는 서로 다른 리스트(각각 [1]). d["a"]에만 append → [1, 2], d["b"]는 [1] 그대로. (9번과 달리 별개 객체)