파이썬 함수는 코드의 재사용성과 모듈화를 가능하게 하는 중요한 도구입니다. 함수를 사용하면 복잡한 작업을 여러 개의 작은 작업으로 나눌 수 있고, 이를 통해 코드의 가독성과 유지보수성을 높일 수 있습니다. 이번 글에서는 함수의 기본 개념부터 다양한 기능들을 살펴보겠습니다.
1. 함수의 기본 구조
파이썬 함수는 'def' 키워드를 사용하여 정의합니다. 함수는 선택적으로 매개변수를 받을 수 있고, 'return' 키워드로 값을 반환할 수 있습니다.
def greet(name):
return f"Hello, {name}!"
# 함수 호출
print(greet("Alice"))
# 출력 결과:
# Hello, Alice!
위 코드에서는 'greet'라는 이름의 함수를 정의하고, 'name' 매개변수를 받아서 인사말을 반환합니다.
2. 함수의 다양한 사용
함수는 다양한 방식으로 호출되고 사용될 수 있습니다. 기본값 매개변수를 설정하거나, 인자 목록을 가변으로 받을 수도 있습니다.
기본값 매개변수
def greet(name="Guest"):
return f"Hello, {name}!"
# 함수 호출
print(greet())
print(greet("Alice"))
# 출력 결과:
# Hello, Guest!
# Hello, Alice!
위 코드에서는 'name' 매개변수에 기본값 'Guest'를 지정하여, 인자를 생략하여 호출할 경우 기본값이 사용됩니다.
키워드 인자
def describe_pet(animal_type, pet_name):
return f"I have a {animal_type} named {pet_name}."
# 키워드 인자를 사용한 함수 호출
print(describe_pet(animal_type="dog", pet_name="Buddy"))
print(describe_pet(pet_name="Whiskers", animal_type="cat"))
# 출력 결과:
# I have a dog named Buddy.
# I have a cat named Whiskers.
키워드 인자를 사용하면 인자의 순서에 상관없이 함수 호출 시 인자를 전달할 수 있습니다.
3. 다양한 반환 값
함수는 'return' 키워드를 사용하여 하나 이상의 값을 반환할 수 있다고 했습니다. 여러 값을 반환하는 경우, 튜플 형태로 반환됩니다.
def get_person_info():
name = "Alice"
age = 30
city = "New York"
return name, age, city
# 함수 호출 및 반환값 언패킹
name, age, city = get_person_info()
print(name, age, city)
# 출력 결과:
# Alice 30 New York
위 코드에서는 함수가 여러 값을 반환하고, 이를 언패킹하여 각각의 변수에 할당합니다.
4. 가변 인자 '*args'
가변 인자 '*args'는 함수에 전달되는 인자의 수를 모를 때 사용합니다. '*args'는 튜플 형태로 여러 개의 인자를 받을 수 있습니다.
def sum_all(*args):
return sum(args)
# 함수 호출
print(sum_all(1, 2, 3, 4, 5))
# 출력 결과:
# 15
위 코드에서는 'sum_all' 함수가 임의의 개수의 인자를 받아 그 합을 반환합니다.
5. 키워드 가변 인자 '**kwargs'
키워드 가변 인자 '**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
위 코드에서는 'print_info' 함수가 임의의 개수의 키워드 인자를 받아 그 내용을 출력합니다.
6. 람다 함수
람다 함수는 한 줄로 정의되는 익명 함수입니다. 일반 함수와 달리 'def' 키워드를 사용하지 않고, 'lambda' 키워드를 사용하여 정의합니다. 주로 간단한 연산이나 일회성 함수가 필요할 때 사용됩니다.
람다 함수
# 람다 함수 정의
square = lambda x: x ** 2
# 람다 함수 호출
print(square(5))
# 출력 결과:
# 25
위 코드에서는 'x'를 제곱하는 람다 함수를 정의하고, 이를 호출하여 결과를 출력합니다.
람다 함수와 고차 함수
람다 함수는 'map()', 'filter()', 'reduce()'와 같은 고차 함수와 함께 자주 사용됩니다.
(고차 함수란 하나 이상의 함수를 인자로 받거나, 함수를 반환하는 함수입니다.)
# map()과 람다 함수
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers)
# 출력 결과:
# [1, 4, 9, 16, 25]
# filter()와 람다 함수
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)
# 출력 결과:
# [2, 4]
파이썬 함수는 코드의 재사용성과 모듈화를 가능하게 하는 매우 중요한 도구입니다. 함수를 이해하고 활용하면, 더 효율적이고 가독성 높은 코드를 작성할 수 있습니다.
'Python > 문법' 카테고리의 다른 글
[Python] 파이썬 파일 읽기와 파일 쓰기에 대해서 (0) | 2024.08.04 |
---|---|
[Python] 파이썬 클래스 사용법 (+ 상속, 다형성) (0) | 2024.08.03 |
[Python] 파이썬 while문 정리 및 예제 (0) | 2024.08.01 |
[Python] 파이썬 for문 정리 및 예제 (0) | 2024.07.31 |
[Python] 파이썬 IF문 개념 정리 및 예제 (0) | 2024.07.30 |
댓글