함수는 특정 작업을 수행하는 "코드 블록"입니다.
파이썬에서 함수는 def 키워드를 사용하여 정의합니다.
def greet(name):
return print(f"Hello, {name}!")
# 함수 호출
greet("Alice") # Hello, ALice!
매개변수 (Parameter): 함수 정의에서 사용되는 변수.
인자 (Argument): 함수 호출 시 전달되는 값.
def add(a, b): # a와 b는 매개변수
return a + b
result = add(3, 5) # 3과 5는 인자
print(result) # 8
재귀호출은 함수가 자기 자신을 호출하는 것입니다. 예를 들어, 팩토리얼 계산은 재귀함수로 구현할 수 있습니다.
재귀 호출은 잘못사용하면 무한루프에 빠질 수 있다.
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
print(factorial(5)) # 120
위의 예시에서 if n==0: return 1 을 통하여 무한루프에 빠지지 않게 재귀호출을 사용한 함수가 멈출 수 있도록 설정하였다.
가변인자는 함수가 "여러 개의 인자"를 받을 수 있게 합니다.
파이썬에서는 "위치 인자"와 "키워드 인자"를 사용하여 가변인자를 처리할 수 있습니다.
위치 인자는 여러 개의 인자를 순서대로 받고, 키워드 인자는 이름과 값을 함께 받습니다.
위치 인자를 사용하는 가변인자는 *args 를 사용하여 여러 개의 인자를 받을 수 있습니다.
여기서 args는 관례적으로 사용하는 이름일 뿐, 다른 이름을 사용해도 무방합니다.
def print_numbers(*args):
for number in args:
print(number, end =' ')
print_numbers(1, 2, 3, 4, 5) # 1 2 3 4 5
키워드 인자를 사용하는 가변인자는 **kwargs를 사용하여 여러 개의 키워드 인자를 받을 수 있습니다. 여기서 kwargs도 관례적인 이름입니다.
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=30, city="New York")
#name: Alice
#age: 30
#city: New York