핵심 SET 08 — 정답 및 해설¶
| 문항 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 정답 | ② | ① | ① | ① | ① | ① | ① | ① | ① | ① |
1. 정답 ② 24
val이 함수 리스트를 거치며 차례로 변환됩니다. double(2)=4 → triple(4)=12 → double(12)=24.
2. 정답 ① 3 8 8
global counter로 전역 변수를 직접 수정합니다. 첫 호출: counter = 0+3 = 3 반환. 두 번째 호출: counter = 3+5 = 8 반환. 마지막 print(counter)도 전역 값인 8.
3. 정답 ① 6 12 2
Counter.total_count는 인스턴스가 생성될 때마다 1씩 증가하는 클래스 변수이므로 c1, c2 생성 후 2. c1.value는 0에서 increment()(기본 by=1)로 1, increment(5)로 6. c2.value는 10에서 increment(2)로 12.
4. 정답 ① 3 True
시드를 고정해도 random.randint(1, 5)는 항상 1~5 범위의 정수만 반환하므로, 리스트 길이는 3이고 모든 값이 1<=n<=5를 만족해 all(...)은 True입니다.
5. 정답 ① {'a': 10, 'b': 0, 'c': 0} 50
b(20)와 c(30)는 20 이상이라 각각 total에 더해지고(20+30=50) 해당 키 값은 0으로 바뀝니다. a(10)는 조건을 만족하지 않아 그대로 10.
6. 정답 ① [20, 40, 60] [70, 60, 50]
a[1:6:2]는 인덱스 1, 3, 5의 값인 20, 40, 60. a[::-1]은 a를 뒤집은 [70,60,50,40,30,20,10]이고, 그 앞 3개는 [70, 60, 50].
7. 정답 ① (3, 'b') c 1
key=lambda t: t[0]로 첫 원소 기준 내림차순 정렬하면 [(3,'b'), (2,'c'), (1,'a')]. first=(3,'b'), second=(2,'c')라 second[1]='c', third=(1,'a')라 third[0]=1.
8. 정답 ① [1, 2, 5]
파이썬 연산자 우선순위상 -와 &는 |보다 먼저 계산됩니다. a - b = {1, 2}, b & c = {5}이므로 {1, 2} | {5} = {1, 2, 5}.
9. 정답 ① [pen:500.0, cup:1000.0]
discount(0.5)는 self.price를 직접 *= (1-0.5)로 갱신합니다. pen: 1000*0.5=500.0, cup: 2000*0.5=1000.0. round()의 반환값은 사용되지 않고, __repr__이 갱신된 self.price를 그대로 보여줍니다.
10. 정답 ① 1.0 ['apple']
shop/__init__.py가 Cart를 패키지 네임스페이스로 가져오고 VERSION을 정의했으므로 shop.Cart()와 shop.VERSION 모두 정상 동작합니다. c.add("apple") 이후 c.items는 ['apple'].