2 minute read

파이썬 함수(Function) 완벽 가이드: 코드 재사용과 모듈화의 핵심, 초보자도 쉽게 이해하는 방법

파이썬 함수(Function)는 특정 작업을 수행하는 코드 블록으로, 코드의 재사용성을 높이고 프로그램을 모듈화하는 데 핵심적인 역할을 합니다. 함수를 사용하면 복잡한 프로그램을 간결하고 효율적으로 작성할 수 있습니다. 이 글에서는 파이썬 함수의 개념, 정의, 호출, 다양한 활용법을 예제 코드와 함께 자세히 설명합니다.

1. 함수란 무엇인가?

함수는 특정 기능을 수행하는 코드의 묶음입니다. 함수는 입력(매개변수)을 받아 작업을 수행하고, 결과(반환 값)를 반환할 수 있습니다. 함수를 사용하면 다음과 같은 장점을 얻을 수 있습니다.

  • 코드 재사용성: 동일한 코드를 반복해서 작성할 필요 없이 함수를 호출하여 사용할 수 있습니다.
  • 코드 가독성: 코드를 기능별로 분리하여 가독성을 높이고 유지보수를 용이하게 합니다.
  • 모듈화: 프로그램을 작은 단위의 모듈로 분리하여 개발 및 관리를 효율적으로 할 수 있습니다.

2. 함수 정의 및 호출

2.1 함수 정의

def 키워드를 사용하여 함수를 정의합니다. 함수의 이름, 매개변수, 콜론(:)을 작성하고, 들여쓰기된 코드 블록에 함수 내용을 작성합니다.

def greet(name):
    """인사 메시지를 출력하는 함수"""
    print(f"안녕하세요, {name}님!")

2.2 함수 호출

함수 이름과 괄호()를 사용하여 함수를 호출합니다. 필요한 경우 인자를 괄호 안에 전달합니다.

greet("Alice")  # 출력: 안녕하세요, Alice님!
greet("Bob")    # 출력: 안녕하세요, Bob님!

3. 함수의 다양한 기능

3.1 매개변수(Parameters)

함수에 전달되는 입력 값을 매개변수라고 합니다. 매개변수는 함수 정의 시 괄호 안에 작성합니다.

def add(a, b):
    """두 수를 더하는 함수"""
    return a + b

result = add(3, 5)
print(result)  # 출력: 8

3.2 반환 값(Return Value)

return 키워드를 사용하여 함수의 결과를 반환할 수 있습니다. 반환 값이 없는 함수는 None을 반환합니다.

def multiply(a, b):
    """두 수를 곱하는 함수"""
    return a * b

result = multiply(4, 6)
print(result)  # 출력: 24

3.3 기본값 매개변수(Default Arguments)

함수 정의 시 매개변수에 기본값을 지정할 수 있습니다. 함수 호출 시 인자를 생략하면 기본값이 사용됩니다.

def power(base, exponent=2):
    """base의 exponent 제곱을 계산하는 함수"""
    return base ** exponent

print(power(3))    # 출력: 9 (3의 2제곱)
print(power(3, 3)) # 출력: 27 (3의 3제곱)

3.4 가변 인자(Variable Arguments)

*args를 사용하여 여러 개의 위치 인자를 튜플 형태로 전달받을 수 있습니다.

def sum_all(*args):
    """모든 인자의 합을 계산하는 함수"""
    total = 0
    for num in args:
        total += num
    return total

print(sum_all(1, 2, 3))     # 출력: 6
print(sum_all(1, 2, 3, 4))  # 출력: 10

**kwargs를 사용하여 여러 개의 키워드 인자를 딕셔너리 형태로 전달받을 수 있습니다.

def print_info(**kwargs):
    """키워드 인자 정보를 출력하는 함수"""
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="John", age=30, city="New York")

3.5 람다 함수(Lambda Functions)

람다 함수는 익명 함수로, 한 줄의 표현식으로 간단하게 함수를 정의할 수 있습니다.

add = lambda x, y: x + y
print(add(5, 7))  # 출력: 12

4. 함수 활용 예시

4.1. 계산기 함수

def calculate(a, b, operator):
    """사칙연산을 수행하는 함수"""
    if operator == "+":
        return a + b
    elif operator == "-":
        return a - b
    elif operator == "*":
        return a * b
    elif operator == "/":
        return a / b
    else:
        return "잘못된 연산자입니다."

print(calculate(10, 5, "+"))  # 출력: 15

4.2. 문자열 반전 함수

def reverse_string(s):
    """문자열을 반전하는 함수"""
    return s[::-1]

print(reverse_string("hello"))  # 출력: olleh

5. 결론

파이썬 함수는 코드 재사용성을 높이고 프로그램을 모듈화하는 데 필수적인 요소입니다.

Top