혼공학습단/혼공파

[혼공파] Python의 매개변수와 기본 매개변수, 가변 매개변수 이해하기

sunghoyaaa 2025. 2. 9. 20:04

혼자 공부하는 파이썬 (개정판)

이 게시글은 혼공학습단(혼공파) 13기의 4주차 과제를 포함하고 있습니다.

 

Python에서는 함수를 정의할 때 매개변수를 활용하여 다양한 방식으로 값을 전달할 수 있습니다. 본 글에서는 일반 매개변수, 기본 매개변수, 가변 매개변수에 대해 알아보고 각각의 예제와 함께 설명하겠습니다.


1. 매개변수 (Parameters)란?

매개변수는 함수를 정의할 때 함수가 외부에서 값을 받을 수 있도록 설정하는 변수입니다. 함수를 호출할 때 매개변수에 값을 전달하면 함수 내부에서 해당 값을 활용할 수 있습니다.

# 두 수를 더하는 함수 정의
def add(a, b):
    return a + b

# 함수 호출
result = add(3, 5)
print(result)  # 출력: 8

위 코드에서 ab는 매개변수이며, 함수가 호출될 때 35가 각각 a, b에 전달됩니다.


2. 기본 매개변수 (Default Parameters)

기본 매개변수란 특정 인자를 전달하지 않았을 때 기본값을 사용할 수 있도록 설정된 매개변수입니다.

# 기본값을 가지는 함수 정의
def greet(name="Minions"):
    print(f"Hello, {name}!")

# 매개변수 값을 전달하는 경우
greet("Bob")  # 출력: Hello, Bob!

# 매개변수를 전달하지 않는 경우
greet()  # 출력: Hello, Minions!

위 코드에서 name 매개변수의 기본값을 "Minions"로 설정하여 인자를 전달하지 않아도 기본적으로 "Minions"가 출력됩니다.


3. 가변 매개변수 (*args, **kwargs)

3.1 가변 위치 매개변수 (*args)

*args는 여러 개의 위치 인자를 받을 수 있도록 하는 매개변수입니다.

# 여러 개의 숫자를 더하는 함수
def add_all(*args):
    return sum(args)

print(add_all(1, 2, 3))  # 출력: 6
print(add_all(4, 5, 6, 7, 8))  # 출력: 30

*args는 튜플 형태로 여러 개의 인자를 받아 처리할 수 있습니다.

3.2 가변 키워드 매개변수 (**kwargs)

**kwargs는 여러 개의 키워드 인자를 받을 수 있도록 하는 매개변수입니다.

# 사용자 정보를 출력하는 함수
def user_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

user_info(name="Minions", eat="Banana", color="Yellow")

# 결과
# name: Minions
# eat: Banana
# color: Yellow

 

**kwargs는 딕셔너리 형태로 여러 개의 키워드 인자를 받아 처리할 수 있습니다.


4. 매개변수 조합하기

Python에서는 일반 매개변수, 기본 매개변수, 가변 매개변수를 조합하여 사용할 수 있습니다. 하지만 올바른 순서로 정의해야 합니다.

# 다양한 매개변수를 조합한 함수
def custom_function(a, b=10, *args, **kwargs):
    print(f"a: {a}")
    print(f"b: {b}")
    print(f"args: {args}")
    print(f"kwargs: {kwargs}")

custom_function(5, 20, 1, 2, 3, name="Minions", age=28)

# 결과
# a: 5
# b: 20
# args: (1, 2, 3)
# kwargs: {'name': 'Minions', 'age': 28}

위 코드에서는 위치 인자, 기본 인자, 가변 위치 인자, 가변 키워드 인자를 모두 사용할 수 있도록 설정했습니다.


여기서부터는 혼공파의 4주차 과제입니다.

 

p. 287 [직접 해보는 손코딩: 범위 내부의 정수를 모두 더하는 함수] 실행 후 코드가 입력된 화면 및 실행 결과 화면 캡처하기

# 함수를 선언합니다.
def sum_all(start, end):
    # 변수를 선언합니다.
    output = 0
    # 반복문을 돌려 숫자를 더합니다.
    for i in range(start, end + 1):
        output += i
    # 리턴합니다.
    return output
    

# 함수를 호출합니다.
print("0 to 100:", sum_all(0, 100))
print("0 to 1000", sum_all(0, 1000))
print("50 to 100:", sum_all(50, 100))
print("500 to 1000:", sum_all(500, 1000))
728x90