개요
이번 강좌에서는 파이썬 함수의 정의와 활용에 대해 자세히 알아보겠습니다. 함수는 특정 작업을 수행하는 코드 블록으로, 코드의 재사용성과 가독성을 높이는 중요한 도구입니다. 여기서는 def 키워드를 사용해 함수를 정의하고, 매개변수와 반환값을 활용하는 방법을 배웁니다. 또한 기본값 매개변수, 키워드 매개변수, 그리고 *args와 **kwargs를 사용하여 유연한 함수 호출 방법도 익혀보겠습니다.
함수 정의 (def 키워드)
함수는 def 키워드를 사용하여 정의합니다. 함수 이름 뒤에 괄호를 붙이고, 필요한 매개변수를 지정한 후 콜론(:)으로 시작합니다. 함수 내부 코드는 들여쓰기를 통해 구분되며, 함수 호출 시 해당 코드가 실행됩니다.
예제 코드:
# 간단한 인사말을 출력하는 함수 정의
def say_hello():
print("안녕하세요! 파이썬 함수에 오신 것을 환영합니다.")
# 함수 호출
say_hello()
실행 결과:
안녕하세요! 파이썬 함수에 오신 것을 환영합니다.
이처럼 함수를 정의하면, 같은 작업을 여러 번 호출할 수 있어 코드의 중복을 줄일 수 있습니다.
매개변수와 반환값 (return)
함수는 매개변수를 통해 외부에서 데이터를 받아 처리할 수 있으며, return 키워드를 사용하여 결과 값을 반환할 수 있습니다.
예제 코드:
# 두 숫자를 더한 결과를 반환하는 함수
def add(a, b):
result = a + b
return result # 계산된 결과 반환
# 함수 호출 및 반환값 출력
sum_result = add(10, 5)
print("10과 5의 합:", sum_result)
실행 결과:
10과 5의 합: 15
매개변수를 통해 함수 내부로 데이터를 전달하고, return을 이용해 처리된 결과를 밖으로 내보낼 수 있습니다.
기본값 매개변수 및 키워드 매개변수
함수를 정의할 때 매개변수에 기본값을 지정하면, 호출 시 해당 매개변수를 생략할 수 있어 함수의 유연성이 증가합니다. 또한, 키워드 매개변수를 사용하면 함수 호출 시 매개변수의 순서에 상관없이 값을 전달할 수 있습니다.
예제 코드 (기본값 매개변수):
# 기본값 매개변수를 사용한 인사 함수
def greet(name="손님"):
print(f"안녕하세요, {name}님!")
# 기본값 사용
greet()
# 인자 전달
greet("홍길동")
실행 결과:
안녕하세요, 손님님!
안녕하세요, 홍길동님!
예제 코드 (키워드 매개변수):
# 여러 매개변수를 받는 함수
def introduce(name, age, major):
print(f"안녕하세요, 제 이름은 {name}이고, 나이는 {age}세, 전공은 {major}입니다.")
# 키워드 매개변수를 사용한 함수 호출
introduce(age=22, major="컴퓨터공학", name="이순신")
실행 결과:
안녕하세요, 제 이름은 이순신이고, 나이는 22세, 전공은 컴퓨터공학입니다.
이처럼 기본값과 키워드 매개변수를 활용하면 함수 호출 시 유연성을 높이고, 가독성을 개선할 수 있습니다.
*args와 **kwargs의 활용
때로는 함수에 전달되는 인자의 개수가 정해져 있지 않을 때가 있습니다. 이때 *args와 **kwargs를 사용하면 임의의 개수의 인자를 함수로 전달할 수 있습니다.
*args
*args는 위치 기반의 임의 인자를 튜플로 받습니다.
예제 코드:
# 여러 개의 숫자를 전달받아 합계를 계산하는 함수
def sum_all(*args):
total = 0
for num in args:
total += num
return total
print("합계:", sum_all(1, 2, 3, 4, 5)) # 결과: 15
실행 결과:
합계: 15
**kwargs
**kwargs는 키워드 인자를 딕셔너리 형태로 받습니다.
예제 코드:
# 여러 개의 키워드 인자를 받아 출력하는 함수
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="김철수", age=30, city="서울")
실행 결과:
name: 김철수
age: 30
city: 서울
*args와 **kwargs를 활용하면 함수에 유연하게 인자를 전달할 수 있어, 다양한 상황에 대응하는 함수를 작성할 때 매우 유용합니다.
정리
- 함수 정의: def 키워드를 사용하여 함수를 정의하고, 호출 시 해당 코드 블록을 실행합니다.
- 매개변수와 반환값: 함수는 매개변수를 통해 외부 데이터를 받아 처리하며, return을 통해 결과 값을 반환합니다.
- 기본값 및 키워드 매개변수: 기본값을 지정하여 함수 호출 시 생략 가능하고, 키워드 인자를 통해 순서에 상관없이 값을 전달할 수 있습니다.
- *args와 **kwargs: 임의의 개수의 위치 기반 인자는 튜플로, 키워드 인자는 딕셔너리로 받아 유연하게 함수 호출을 처리할 수 있습니다.
- 실습 예제: 각 개념별 예제 코드를 실행해 보며 함수의 다양한 활용법을 익혀보세요.
'개발 > Python' 카테고리의 다른 글
[Python 파이썬] 10. 파일 입출력 (0) | 2025.02.13 |
---|---|
[Python 파이썬] 9. 모듈과 패키지 (0) | 2025.02.12 |
[Python 파이썬] 7. 데이터 구조: 딕셔너리와 세트 (0) | 2025.02.10 |
[Python 파이썬] 6. 데이터 구조: 리스트와 튜플 (0) | 2025.02.09 |
[Python 파이썬] 5. 제어문: 반복문 (0) | 2025.02.08 |