콘텐츠로 이동

파이썬 객관식 심화 — 핵심 SET 10

이름: ____________ 점수: _____ / 100 난이도: ★★★★★

각 코드의 실행 결과 또는 옳은 설명을 보기에서 하나 고르세요. (문항당 10점, 범위: 함수·클래스·모듈/패키지·딕셔너리·리스트·튜플·set 심화)


1. (함수) 다음 코드의 출력은?

def apply_updates(d, updates):
    for k, v in updates.items():
        d[k] = v
    return d

config = {"mode": "easy", "level": 1}
updates = {"mode": "hard", "sound": True}
result = apply_updates(config, updates)
print(config, result, config is result)

{'mode': 'hard', 'level': 1, 'sound': True} {'mode': 'hard', 'level': 1, 'sound': True} True
{'mode': 'easy', 'level': 1, 'sound': True} {'mode': 'easy', 'level': 1, 'sound': True} True
{'mode': 'hard', 'level': 1, 'sound': True} {'mode': 'hard', 'level': 1, 'sound': True} False
TypeError
{'mode': 'hard', 'level': 1} {'mode': 'hard', 'level': 1} True

2. (함수) 다음 코드의 출력은?

def build(a, b, c=10, d=20):
    return a * 1 + b * 2 + c * 3 + d * 4

print(build(1, b=2, d=5))

55
50
45
TypeError
65

3. (클래스) 다음 코드의 출력은?

class Light:
    def __init__(self):
        self.on = False
        self.toggle_count = 0
    def toggle(self):
        self.on = not self.on
        self.toggle_count += 1
        return self.on

l = Light()
for _ in range(5):
    l.toggle()
print(l.on, l.toggle_count)

True 5
False 5
True 4
False 4
Error

4. (모듈/패키지) 다음 코드의 출력은?

import math

def stats(nums):
    avg = sum(nums) / len(nums)
    return math.floor(avg), math.ceil(avg)

print(stats([1, 2, 3, 4]))

(2, 3)
(3, 2)
(2.5, 2.5)
TypeError
(2, 2)

5. (딕셔너리) 다음 코드의 출력은?

d = {"a": 1, "b": 2, "c": 3, "d": 4}
total = 0
for k, v in d.items():
    if k in ("b", "d"):
        continue
    total += v
print(total, len(d))

4 4
6 4
4 2
10 4
Error

6. (리스트) 다음 코드의 출력은?

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flat = [x for row in matrix for x in row if x % 2 == 0]
print(flat)

[2, 4, 6, 8]
[1, 3, 5, 7, 9]
[2, 4, 6, 8, 9]
Error
[[2], [4, 6], [8]]

7. (튜플) 다음 코드의 출력은?

a, b, c = 1, 2, 3
a, b, c = c, a, b
print(a, b, c)

3 1 2
1 2 3
2 3 1
3 2 1
Error

8. (set) 다음 코드의 출력은?

a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
c = {4, 5, 6, 7}
print(a | b & c)

{1, 2, 3, 4, 5, 6}
{4}
{1, 2, 3, 4}
Error
{3, 4, 5, 6, 7}

9. (클래스) 다음 코드의 출력은?

class Wallet:
    def __init__(self, money=0):
        self.money = money
        self.log = []
    def spend(self, amt):
        if amt > self.money:
            self.log.append("fail")
            return False
        self.money -= amt
        self.log.append("ok")
        return True

w = Wallet(100)
w.spend(30)
w.spend(80)
w.spend(20)
print(w.money, w.log)

50 ['ok', 'fail', 'ok']
70 ['ok', 'fail']
-10 ['ok', 'ok', 'ok']
50 ['ok', 'ok', 'fail']
Error

10. (패키지) 다음 코드의 출력은?

# utils/math_utils.py
PI = 3.14
def add(a, b):
    return a + b
def circle_area(r):
    return PI * r * r
# main.py
from utils.math_utils import PI, add, circle_area
print(add(PI, 1), circle_area(2))

4.14 12.56
NameError
AttributeError
TypeError
ImportError