파이썬(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을 통한 결과 반환, 다양한 매개변수, 람다 표현식 등 다양한 기능을 활용하여 코드를 깔끔하고 재사용 가능하게 만들 수 있습니다.
'파이썬' 카테고리의 다른 글
파이썬에서 텐서플로 사용시 발생되는 oneDNN 관련 오류 해결방법 (tensorflow onednn custom operations error) (0) | 2025.04.08 |
---|---|
파이썬을 이용한 인공지능 선형회귀 프로그램-등산객수에 따른 산불 발생량 예측 (0) | 2025.04.08 |
파이썬으로 만든 여러가지 구구단 프로그램(for문, while문 활용) (0) | 2025.04.07 |
파이썬 패키지 설치시 Windows 환경에서 "긴 경로 지원 오류" 문제 해결 방법 (0) | 2025.04.06 |
파이썬 제어문-for문 문법 강좌 정리 노트 (시퀀스, range, break, continue) (0) | 2025.03.19 |