🔥 파라미터와 반환 값

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 영상

채널 보기
Zod로 스키마 유효성 검사 구현하기 | NestJS 가이드
C++ 속의 펑터 | 프로그래머를 위한 카테고리 이론
NestJS 역할 기반 접근 권한 부여 - Guard, Reflector | NestJS 가이드
입력을 전처리하는 Functor - Contravariant와 contramap 이해하기 | 프로그래머를 위한 카테고리 이론
매번 ValidationPipe 복붙하세요? NestJS 전역 파이프로 한 번에 해결하기 | NestJS 가이드
Git Worktree로 여러 피처 동시에 개발하기 | AI 코딩 시대의 필수 스킬
함수형 데이터 타입 | 프로그래머를 위한 카테고리 이론
함수 타입과 Hom-Set 이해하기 | 프로그래머를 위한 카테고리 이론