[Python]함수, 재귀함수(Function, Recursion Function)

nongnola·2024년 7월 2일

Python

목록 보기
13/17

함수란?

함수는 코드의 재사용성을 높이기 위해 사용되는 코드 블록입니다. 특정 작업을 수행하는 코드 조각을 하나의 이름으로 묶어 필요할 때마다 호출하여 사용할 수 있습니다. 예를 들어, 두 숫자의 합을 구하는 함수를 만들어 보겠습니다.

def add(a, b):
    return a + b

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

위 코드에서 add라는 함수는 두 개의 매개변수 ab를 받아 이들의 합을 반환합니다. 이렇게 함수를 사용하면 동일한 작업을 반복해서 작성할 필요 없이 함수만 호출하면 됩니다.


재귀함수란?

재귀함수는 함수 내부에서 자기 자신을 호출하는 함수입니다. 이는 반복적인 작업을 처리할 때 유용하게 사용됩니다. 대표적인 예로 팩토리얼 계산을 들 수 있습니다.

def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n-1)

print(factorial(5))  # 출력: 120

위 코드에서 factorial 함수는 n이 1일 때 1을 반환하고, 그렇지 않으면 n * factorial(n-1)을 반환합니다. 이를 통해 팩토리얼을 재귀적으로 계산할 수 있습니다.


함수를 사용하는 이유

함수를 사용하는 주요 이유는 다음과 같습니다:

  1. 코드의 재사용성: 동일한 코드를 여러 번 작성할 필요 없이 함수를 호출하여 사용할 수 있습니다.

  2. 코드의 가독성: 코드를 더 잘 구조화하고, 읽기 쉽게 만들어 줍니다.

  3. 유지보수의 용이성: 코드 수정이 용이하며, 오류가 발생했을 때 쉽게 수정할 수 있습니다.

예를 들어, 여러 번 사용되는 코드가 있을 때 함수를 사용하면 코드가 더 간결하고 명확해집니다.


함수의 사용법

함수를 정의할 때는 def 키워드를 사용하고, 함수를 호출할 때는 함수 이름 뒤에 괄호를 붙여 호출합니다. 다음은 간단한 함수 정의와 호출 예제입니다.

def greet(name):
    return f"Hello, {name}!"

message = greet("Alice")
print(message)  # 출력: Hello, Alice!

위 코드에서 greet 함수는 name 매개변수를 받아서 인사말을 반환합니다. greet("Alice")를 호출하면 "Hello, Alice!"라는 문자열을 반환합니다.


함수와 재귀함수 예시

다음은 일반 함수와 재귀함수의 예시를 통해 차이점을 알아보겠습니다.

일반 함수 예시:

def add(a, b):
    return a + b

print(add(2, 3))  # 출력: 5

재귀함수 예시:

def sum_recursive(n):
    if n == 0:
        return 0
    else:
        return n + sum_recursive(n-1)

print(sum_recursive(5))  # 출력: 15

sum_recursive 함수는 재귀적으로 0부터 n까지의 합을 계산합니다.


함수를 사용할 때 주의할 점

함수를 사용할 때 몇 가지 주의할 점이 있습니다:

  1. 매개변수와 반환값: 함수가 기대하는 매개변수와 반환값의 타입을 정확히 이해하고 사용해야 합니다.

  2. 재귀함수의 기저 조건: 재귀함수는 반드시 종료 조건을 가져야 합니다. 그렇지 않으면 무한 루프에 빠질 수 있습니다.

  3. 전역 변수 사용: 함수 내부에서 전역 변수를 사용할 때는 주의가 필요합니다. 함수는 가능하면 지역 변수를 사용하는 것이 좋습니다.

예를 들어, 전역 변수 사용 시 발생할 수 있는 문제를 살펴보겠습니다.

total = 0

def add_to_total(n):
    global total
    total += n

add_to_total(5)
print(total)  # 출력: 5

add_to_total(3)
print(total)  # 출력: 8

위 코드에서 add_to_total 함수는 전역 변수 total을 수정합니다. 전역 변수를 사용할 때는 global 키워드를 사용해야 하며, 이는 코드의 가독성과 유지보수를 어렵게 만들 수 있습니다.

0개의 댓글