콘텐츠로 이동

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))