SET 01 — 정답 및 해설¶
| 문항 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 정답 | ② | ① | ② | ① | ② | ② | ② | ② | ② | ② |
1. 정답 ② 555
문자열 "5" * 2는 반복이므로 "55", 여기에 + "5"로 문자열 연결 → "555". 문자열에서 *는 곱셈이 아니라 반복, +는 덧셈이 아니라 연결입니다.
2. 정답 ① 50
우선순위 ** > * > +. 4 ** 2 = 16 → 3 * 16 = 48 → 2 + 48 = 50. (②는 (2+3*4)**2로 잘못 계산한 값)
3. 정답 ② 9
i는 1, 3, 5로 증가(2씩). result = 1 + 3 + 5 = 9. i = 7이 되면 7 < 6이 거짓이라 종료.
4. 정답 ① 22
range(10, 0, -3) → 10, 7, 4, 1 (0은 미포함). 합 = 10 + 7 + 4 + 1 = 22.
5. 정답 ② 6 None
f(3)은 x > 0이라 6 반환. f(-1)은 if가 거짓이라 return을 만나지 못함 → 함수는 None을 반환.
6. 정답 ② [1, 2]
items는 클래스 변수라 모든 객체가 같은 리스트를 공유합니다. a.add(1)로 [1], b.add(2)로 [1, 2]가 되고 a.items도 같은 리스트를 가리킴. (가변 객체를 클래스 변수로 두는 함정)
7. 정답 ② A 다음 줄에 C
nums[5]에서 IndexError 발생 → 첫 except가 잡아 A 출력. finally는 항상 실행되어 C 출력. ValueError except는 실행되지 않음.
8. 정답 ② 7
math.floor(3.9) = 3, math.ceil(3.1) = 4. 파이썬3에서 floor/ceil은 정수(int)를 반환하므로 3 + 4 = 7 (실수 7.0 아님).
9. 정답 ② [5, 3, 1]
[::-2]는 뒤에서부터 2칸씩. 5(끝) → 3 → 1. 결과 [5, 3, 1].
10. 정답 ② 1
get("c", 0)은 키 c가 없어 기본값 0. get("a")는 1. 0 + 1 = 1. get은 없는 키에도 KeyError를 내지 않음.