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 = 5→g(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)는 구분자로 이어붙입니다.