파이썬 객관식 심화 — 핵심 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