🔥 파라미터와 반환 값

479자
6분

이번 장에서는 파이썬 함수에서 파라미터와 반환 값에 대해 자세히 알아보겠습니다. 파라미터는 함수에 전달되는 값이며, 반환 값은 함수가 실행 후 결과로 반환하는 값입니다. 이러한 파라미터와 반환 값은 함수의 핵심 요소 중 하나로, 파이썬 프로그래밍에서 빠질 수 없는 주제입니다. 각 섹션에서는 다양한 예제를 통해 파라미터와 반환 값의 활용 방법을 배우고, 이를 통해 함수를 더욱 유연하게 활용하는 방법을 습득할 것입니다.

파라미터와 인수의 개념

파라미터와 인수는 함수에서 핵심적인 역할을 하는 요소입니다. 파라미터는 함수 정의 시에 지정한 변수로, 함수가 실행될 때 외부에서 전달되는 값을 받아옵니다. 이때 전달되는 값을 인수라고 합니다.

python
def add(x, y):
    """두 수를 더하는 함수"""
    result = x + y
    return result
 
# 함수 호출 시 인수 전달
sum_result = add(3, 5)
print(sum_result)  # 출력: 8
 
python
def add(x, y):
    """두 수를 더하는 함수"""
    result = x + y
    return result
 
# 함수 호출 시 인수 전달
sum_result = add(3, 5)
print(sum_result)  # 출력: 8
 

기본 파라미터 값

파이썬에서는 함수의 파라미터에 기본 값을 지정할 수 있습니다. 이를 통해 함수를 호출할 때 인수를 생략할 수 있으며, 필요한 경우에만 값을 전달할 수 있습니다.

python
def greet(name, greeting="안녕하세요"):
    """인사말을 출력하는 함수"""
    print(f"{greeting}, {name}님!")
 
# 함수 호출 시 인수 생략 가능
greet("Alice")              # 출력: "안녕하세요, Alice님!"
greet("Bob", greeting="Hi")  # 출력: "Hi, Bob님!"
 
python
def greet(name, greeting="안녕하세요"):
    """인사말을 출력하는 함수"""
    print(f"{greeting}, {name}님!")
 
# 함수 호출 시 인수 생략 가능
greet("Alice")              # 출력: "안녕하세요, Alice님!"
greet("Bob", greeting="Hi")  # 출력: "Hi, Bob님!"
 

가변 인수와 키워드 인수

가변 인수를 사용하면 함수를 호출할 때 임의의 개수의 인수를 전달할 수 있습니다. 또한, 키워드 인수를 사용하여 인수의 이름을 지정할 수 있으며, 이를 통해 함수의 유연성을 높일 수 있습니다.

python
def calculate_total(*numbers, discount=0):
    """여러 수의 합을 계산하고 할인 적용하기"""
    total = sum(numbers)
    discounted_total = total - (total * discount)
    return discounted_total
 
# 함수 호출
result = calculate_total(100, 200, 300, discount=0.1)
print(result)  # 출력: 540.0
 
python
def calculate_total(*numbers, discount=0):
    """여러 수의 합을 계산하고 할인 적용하기"""
    total = sum(numbers)
    discounted_total = total - (total * discount)
    return discounted_total
 
# 함수 호출
result = calculate_total(100, 200, 300, discount=0.1)
print(result)  # 출력: 540.0
 

반환 값의 활용

함수에서 반환 값은 함수의 실행 결과를 외부로 전달하는데 사용됩니다. 반환 값은 변수에 저장하거나 다른 함수의 인수로 사용될 수 있으며, 프로그램의 다양한 부분에서 활용됩니다.

python
def square(x):
    """숫자의 제곱을 반환하는 함수"""
    return x ** 2
 
# 반환 값을 변수에 저장
result = square(5)
print(result)  # 출력: 25
 
# 반환 값을 다른 함수의 인수로 활용
def print_square(number):
    print(f"제곱 값: {square(number)}")
 
print_square(3)  # 출력: "제곱 값: 9"
 
python
def square(x):
    """숫자의 제곱을 반환하는 함수"""
    return x ** 2
 
# 반환 값을 변수에 저장
result = square(5)
print(result)  # 출력: 25
 
# 반환 값을 다른 함수의 인수로 활용
def print_square(number):
    print(f"제곱 값: {square(number)}")
 
print_square(3)  # 출력: "제곱 값: 9"
 

None 값과 반환

파이썬에서 함수가 반환하는 값이 없을 때, 함수는 자동으로 None 값을 반환합니다. 이러한 None 값은 함수의 반환을 명시적으로 처리하지 않을 경우 자주 발생하는 값입니다.

python
def do_nothing():
    """아무 작업도 수행하지 않는 함수"""
    pass
 
result = do_nothing()
print(result)  # 출력: None
 
python
def do_nothing():
    """아무 작업도 수행하지 않는 함수"""
    pass
 
result = do_nothing()
print(result)  # 출력: None
 

여러 값 반환

파이썬에서 함수는 여러 개의 값을 반환할 수 있습니다. 이를 튜플(tuple)로 반환하고, 함수 호출 시 각 값을 변수에 저장하여 활용할 수 있습니다.

python
def get_name_and_age():
    """이름과 나이 반환"""
    name = "Alice"
    age = 30
    return name, age
 
# 여러 값 반환 받기
name, age = get_name_and_age()
print(f"이름: {name}, 나이: {age}")  # 출력: "이름: Alice, 나이: 30"
 
python
def get_name_and_age():
    """이름과 나이 반환"""
    name = "Alice"
    age = 30
    return name, age
 
# 여러 값 반환 받기
name, age = get_name_and_age()
print(f"이름: {name}, 나이: {age}")  # 출력: "이름: Alice, 나이: 30"
 

연습문제

  1. 파라미터와 인수의 차이를 설명해보세요.
  2. 기본 파라미터 값을 사용하는 함수를 작성하고 호출해보세요.
  3. 가변 인수와 키워드 인수를 활용하여 임의의 개수의 숫자를 받아 합을 계산하는 함수를 작성해보세요.
  4. 반환 값이 없는 함수와 반환 값이 있는 함수의 차이를 설명해보세요.
  5. 여러 값을 반환하는 함수를 작성하고 여러 값을 변수에 저장하여 출력해보세요.
  6. 파이썬 내장 함수 중 하나를 선택하여 해당 함수의 파라미터와 반환 값을 설명해보세요.

YouTube 영상

채널 보기
입력을 전처리하는 Functor - Contravariant와 contramap 이해하기 | 프로그래머를 위한 카테고리 이론
Pro펑터, 입력과 출력을 동시에 다루는 펑터 | 프로그래머를 위한 카테고리 이론
매번 ValidationPipe 복붙하세요? NestJS 전역 파이프로 한 번에 해결하기 | NestJS 가이드
NestJS 인터셉터에서 map 연산자로 응답을 변환하는 방법 | NestJS 가이드
NestJS 커스텀 데코레이터 인자 전달 및 파이프 검증 활용법 | NestJS 가이드
NestJS 커스텀 데코레이터, createParamDecorator 사용 | NestJS 가이드
관점 지향 로깅 인터셉터 구현 및 전역 바인딩 전략 | NestJS 가이드
C++ 속의 펑터 | 프로그래머를 위한 카테고리 이론