5단원 과제: 함수¶
이름: ____________
- 출력 예측: 소스 코드를 보고 실행 결과를 예측하여 작성하세요. 코드를 실행하기 전에 먼저 작성하세요.
- 빈칸 채우기:
______빈칸을 채워 프로그램을 완성하세요.
문제 1. 함수 기본 — return값 추적 (출력 예측)¶
소스 코드
def double(x):
return x * 2
def square(x):
return x ** 2
a = double(3)
b = square(4)
print(a)
print(b)
print(double(a))
print(square(double(2)))
실행 결과 (순서대로 예측하여 작성하세요)
①
②
③
④
문제 2. None 반환 (출력 예측)¶
소스 코드
def say(msg):
print(msg)
def add(a, b):
return a + b
x = say("Hello")
y = add(10, 20)
print(x)
print(y)
print(type(x))
실행 결과 (순서대로 예측하여 작성하세요)
①
②
③
④
⑤
문제 3. 스코프 — 지역 변수와 전역 변수 (출력 예측)¶
소스 코드
x = 100
def f():
x = 200
print(x)
def g():
print(x)
f()
g()
print(x)
실행 결과 (순서대로 예측하여 작성하세요)
①
②
③
문제 4. global 키워드 (출력 예측)¶
소스 코드
total = 0
def add_to_total(n):
global total
total += n
add_to_total(5)
add_to_total(3)
add_to_total(2)
print(total)
실행 결과 (순서대로 예측하여 작성하세요)
①
문제 5. import와 math 모듈 (출력 예측)¶
소스 코드
import math
print(math.floor(3.7))
print(math.ceil(3.2))
print(math.sqrt(25))
print(round(math.pi, 2))
실행 결과 (순서대로 예측하여 작성하세요)
①
②
③
④
문제 6. 기본값 매개변수 (출력 예측)¶
소스 코드
def power(base, exp=2):
return base ** exp
print(power(3))
print(power(3, 3))
print(power(2, 10))
실행 결과 (순서대로 예측하여 작성하세요)
①
②
③
문제 7. 은행 계좌 (빈칸 채우기)¶
잔액을 전역 변수로 관리하는 간단한 은행 계좌를 완성하세요.
실행 예시
잔액: 1000
잔액: 700
잔액: 1200
소스 코드
balance = 0
def deposit(amount):
______ balance
balance ______ amount
def withdraw(amount):
global balance
balance -= amount
def show():
print(f"잔액: {______}")
deposit(1000)
show()
withdraw(300)
show()
deposit(500)
show()
문제 8. 함수 완성 (빈칸 채우기)¶
두 수를 받아 절댓값이 더 큰 수를 반환하는 함수를 완성하세요.
실행 예시
5
10
7
소스 코드
def max_abs(a, b):
if ______(a) >= abs(b):
______ a
else:
return ______
print(max_abs(5, -3))
print(max_abs(-10, 4))
print(max_abs(-7, 7))
문제 9. 팩토리얼 (빈칸 채우기)¶
n! 을 계산하는 함수를 완성하세요.
실행 예시
1
6
120
소스 코드
def factorial(n):
result = 1
for i in range(1, ______):
result ______ i
return ______
print(factorial(1))
print(factorial(3))
print(factorial(5))
문제 10. 통계 함수 (빈칸 채우기)¶
리스트의 평균을 계산하는 함수를 완성하세요.
실행 예시
30.0
85.0
소스 코드
def average(numbers):
if ______(numbers) == 0:
return 0
return ______(numbers) / len(numbers)
scores1 = [10, 20, 30, 40, 50]
scores2 = [90, 80, 85, 75, 95]
print(average(______))
print(average(scores2))