본문 바로가기
파이썬

파이썬 함수 문법 강좌 정리 노트 (인자, 매개변수, 반환값, 람다함수, 재귀함수)

by 코딩-가이드 2025. 4. 7.
반응형

 

 

파이썬(Python)은 간결하고 직관적인 문법 덕분에 전 세계적으로 사랑받는 프로그래밍 언어입니다. 그중에서도 **함수(function)**는 파이썬 프로그래밍에서 가장 핵심적인 개념 중 하나로, 코드의 재사용성, 가독성, 유지보수성을 크게 향상시킵니다. 이 글에서는 파이썬 함수에 대해 기초부터 실전 예제까지 단계별로 알아보며, 파이썬 함수의 정의, 사용법, 매개변수, 반환값, 람다함수 등 다양한 내용을 다루겠습니다.

 

1. 함수란 무엇인가?

프로그래밍에서 함수는 특정 작업을 수행하는 독립적인 코드 블록입니다. 동일한 작업을 여러 번 수행할 때, 그 코드를 반복해서 작성하는 대신 함수로 정의하면, 코드의 재사용성과 효율성을 높일 수 있습니다.

함수의 주요 목적

  • 코드의 재사용: 여러 곳에서 동일한 기능을 반복할 수 있음
  • 코드의 구조화: 프로그램을 논리적 단위로 나눔
  • 유지보수 용이성: 변경 사항이 있을 경우 한 곳만 수정
  • 가독성 향상: 이름으로 기능을 설명해 코드 이해가 쉬움

 

2. 파이썬 함수의 기본 구조

파이썬에서는 def 키워드를 사용하여 함수를 정의합니다.

 

[예제]

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

 

[설명]

이 함수는 두 숫자를 더한 후 결과를 반환합니다. add(3, 5)를 호출하면 8이 반환됩니다.

 

3. 함수 호출 방법

함수를 호출(call)하려면 함수 이름 뒤에 괄호를 붙여 호출합니다. 매개변수가 있다면 괄호 안에 값을 넣어 전달합니다.

 

[예제]

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


result = add(10, 20)
print(result)  # 출력: 30

 

[결과]

 

 

3. 파이썬 함수 매개변수 종류

파이썬 함수는 다양한 방식으로 인자를 전달할 수 있도록 유연한 매개변수 구조를 지원합니다.

3-1. 위치 인자(Positional Arguments)

인자의 순서에 따라 값이 전달됩니다.

 

[예제]

def greet(name):
    print(f"안녕하세요, {name}님!")

greet("영숙")   # 호출

 

[결과]

 

3-2. 기본 인자(Default Arguments)

매개변수에 기본값을 설정할 수 있어, 호출 시 인자를 생략해도 작동합니다.

 

[예제]

def greet(name="Python"):
    print(f"Hi!! {name}!")

greet()   # 호출

 

[결과]

 

3-3. 가변 인자(args)

인자의 개수를 정하지 않고, 튜플 형태로 여러 값을 받을 수 있습니다.

 

[예제]

def total(*numbers):
    return sum(numbers)

print(total(1, 2, 3, 4, 5))

 

[결과]

 

 

3-4. 키워드 인자(kwargs)

딕셔너리 형태로 인자를 받아 유연하게 처리할 수 있습니다.

 

[예제]

def user_info(**info):
    for key, value in info.items():
        print(f"{key}: {value}")

user_info(name="철수", age=25, email="test@example.com")

 

[결과]

 

 

4. 함수의 반환값(Return)

함수는 실행 결과를 반환할 수 있으며, return 키워드를 사용합니다.

 

[샘플]

def multiply(x, y):
    return x * y

 

 

5. 람다 함수(Lambda)

람다 함수는 간단한 익명 함수를 생성할 때 사용됩니다. 함수의 본문이 한 줄로 구성될 때 매우 유용합니다.

 

[예제]

square = lambda x: x * x
print(square(4))  # 16

 

[결과]

 

람다 함수는 map(), filter(), sorted()와 같은 함수형 프로그래밍 패턴에서 자주 활용됩니다.

 

[예제]

numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x ** 2, numbers))
print(squared)  # [1, 4, 9, 16]

 

[결과]

 

 

6. 고급 함수 개념

6-1. 재귀 함수(Recursive Function)

자기 자신을 다시 호출하는 함수로, 반복적인 구조를 단순화할 수 있습니다.

 

[예제]

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

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

 

[결과]

 

 

6-2. 함수 안의 함수 (Nested Function)

파이썬에서는 함수 내부에 또 다른 함수를 정의할 수 있습니다.

 

[형식]

def outer():
    def inner():
        print("안쪽 함수입니다.")
    inner()

 

6-3. 클로저(Closure)

내부 함수가 외부 함수의 변수를 참조할 수 있도록 하는 구조입니다.

 

[예제]

def outer(msg):
    def inner():
        print(msg)
    return inner

hello = outer("Hello, Python!")
hello()  # 출력: Hello, Python!

 

[결과]

 


파이썬 함수는 프로그램을 더 구조적이고 효율적으로 만드는 데 필수적인 도구입니다. def로 함수 정의, return을 통한 결과 반환, 다양한 매개변수, 람다 표현식 등 다양한 기능을 활용하여 코드를 깔끔하고 재사용 가능하게 만들 수 있습니다.

 

반응형