콘텐츠로 이동

5단원 쪽지시험 정답: 함수


1번

① 7
② 24
③ 13

해설

항목 계산 결과
f(3) 3 * 2 + 1 7
g(f(2))g(5) 5 ** 2 - 5 = 25 - 5 20
f(g(3))f(6) 6 * 2 + 1 13

단계별: f(2) = 2*2+1 = 5g(5) = 5**2 - 5 = 20


2번

① 5
② 4
③ 0

해설

항목 호출 b값 조건 계산
mystery(15) 10 (기본값) 15 > 10 → True 15 - 10 = 5
mystery(3, 7) 7 3 > 7 → False 7 - 3 = 4
mystery(10, 10) 10 10 > 10 → False 10 - 10 = 0

기본값 매개변수와 조건 분기가 함께 쓰인 문제입니다.


3번

① 99
② 5

해설

n = 5           # 전역 변수 n = 5

def change():
    n = 99      # 지역 변수 n = 99 (전역 n과 별개)
    return n    # 지역 n 반환

result = change()   # result = 99
print(result)       # 99
print(n)            # 전역 n은 여전히 5

global 선언 없이 함수 안에서 n = 99새 지역 변수를 만들 뿐, 전역 n은 바뀌지 않습니다.


4번

① 18
② 9

해설

count_up(10): 1~10 중 3의 배수 → 3, 6, 9 → 합계 18

count_up(6): 1~6 중 3의 배수 → 3, 6 → 합계 9


5번

① hi
② ok-ok-ok
③ A*A*A*A

해설

항목 호출 parts sep 결과
make_label("hi") ["hi"] "-" "hi"
make_label("ok", 3) ["ok","ok","ok"] "-" "ok-ok-ok"
make_label("A", 4, "*") ["A","A","A","A"] "*" "A*A*A*A"

[text] * repeat는 리스트를 반복해 만들고, sep.join(parts)는 구분자로 이어붙입니다.