이 게시글은 혼공학습단(혼공파) 13기의 4주차 과제를 포함하고 있습니다.
Python에서는 함수를 정의할 때 매개변수를 활용하여 다양한 방식으로 값을 전달할 수 있습니다. 본 글에서는 일반 매개변수, 기본 매개변수, 가변 매개변수에 대해 알아보고 각각의 예제와 함께 설명하겠습니다.
1. 매개변수 (Parameters)란?
매개변수는 함수를 정의할 때 함수가 외부에서 값을 받을 수 있도록 설정하는 변수입니다. 함수를 호출할 때 매개변수에 값을 전달하면 함수 내부에서 해당 값을 활용할 수 있습니다.
# 두 수를 더하는 함수 정의
def add(a, b):
return a + b
# 함수 호출
result = add(3, 5)
print(result) # 출력: 8
위 코드에서 a와 b는 매개변수이며, 함수가 호출될 때 3과 5가 각각 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))
'혼공학습단 > 혼공파' 카테고리의 다른 글
[혼공파] Beautiful Soup & Flask 로 기상청 날씨 정보 훔치기 (0) | 2025.02.23 |
---|---|
[혼공파] 파이썬 구문 오류(SyntaxError)와 예외(Exception)의 차이점 (0) | 2025.02.16 |
[혼공파] Python 자료형: 리스트, 딕셔너리, 범위형 자료형 (0) | 2025.01.25 |
[혼공파] 띠 계산 프로그램: 세 가지 구현 방식 비교 (0) | 2025.01.19 |
[혼공파] print 함수 톺아보기 (0) | 2025.01.08 |