파이썬 함수의 세계: 각종 함수 유형 마스터하기
파이썬은 강력한 프로그래밍 언어로서 다양한 종류의 함수들을 제공하고 있습니다. 이러한 함수들은 각각의 특별한 용도와 미묘한 차이점을 가지고 있습니다. 이 글에서는 파이썬 내에서 사용 가능한 다양한 함수 유형들을 깊게 탐구하고, 이러한 함수들을 어떻게 정의하고 코드 내에서 활용할 수 있는지에 대한 방법을 알아보겠습니다. 함수의 유형에는 내장 함수, 사용자 정의 함수, 익명 함수, 고차 함수, 재귀 함수, 그리고 제너레이터 함수가 포함됩니다. 이러한 각 함수 유형의 특징과 활용 방법을 함께 배워봅시다.
1. 내장 함수 (Built-in Functions)
Python 내부에는 다양한 기능을 가진 기본 제공 함수가 있습니다. 이런 함수들은 이미 파이썬에 정의되어 있기 때문에, 별도로 정의할 필요 없이 바로 사용할 수 있습니다.
- abs()
- type()
- max()
- str.upper()
- list.count()
- dict.values()
print(abs(-5))
print(type("Hello"))
print(max([1,2,3,4,5]))
print('hello'.upper())
print([1,1,2,3,4,4,4].count(4))
print({'a':1, 'b':2, 'c':3}.values())
2. 사용자 정의 함수 (User-defined Functions)
사용자 정의 함수(UDF)는 우리가 def 키워드를 사용하여 직접 정의하는 함수입니다. 이러한 함수들에는 매개변수, 기본 값, 독스트링, 반환 값, 타입 어노테이션 등을 제공할 수 있습니다. 아래에는 다양한 예제를 통해 사용자 정의 함수의 생성 방법을 설명합니다:
예제 1: 문자열 반전 함수
def reverse_string(s: str) -> str:
'''
Returns the reversed version of the provided string.
Args:
s: String.
The string to be reversed.
Returns:
The reversed string.
>>> reverse_string("hello")
'olleh'
'''
return s[::-1]
print(reverse_string("hello"))
# 출력: olleh
예제 2: 리스트의 평균을 계산하는 함수
def compute_average(numbers: list) -> float:
'''
Computes the average of a list of numbers.
Args:
numbers: List of integers or floats.
The numbers for which the average is computed.
Returns:
Float, the average of the numbers.
>>> compute_average([1, 2, 3, 4, 5])
3.0
'''
return sum(numbers) / len(numbers)
print(compute_average([1, 2, 3, 4, 5]))
# 출력: 3.0
이렇게 우리는 def 키워드를 사용하여 원하는 기능을 수행하는 함수를 직접 정의할 수 있습니다.
3. 익명 함수 (Anonymoous Funtctions)
파이썬은 이름이 전혀 없는 함수를 정의할 수 있는 방법도 제공합니다. 이러한 함수들을 무명 함수 또는 람다 함수라고 부릅니다. 람다 함수의 문법은 아래와 같습니다:
lambda <인자>: <표현식>
예를 들어, 숫자 두 개의 합을 계산하는 람다 함수를 작성해 봅시다:
lambda x, y: x + y
이 람다 함수를 사용하려면 변수에 할당해야 합니다:
sum_function = lambda x, y: x + y
print(sum_function(5, 7))
# 출력: 12
함수는 파이썬의 기본 구성 요소 중 하나이며, 이를 올바르게 활용하면 훨씬 더 효율적이고 깔끔한 코드를 작성할 수 있습니다. 이 시리즈의 "1탄"에서는 함수의 주요 유형 중 일부를 살펴보았습니다. 2탄에서는 다른 다양한 함수 유형과 함께 함수와 관련된 고급 기법과 패턴들을 탐구해 보겠습니다.
'프로그래밍 언어(Programming Languages) > 파이썬(Python)' 카테고리의 다른 글
[Python] 파이썬 데코레이터: 코드의 아름다움을 재구성하는 방법 (49) | 2023.10.31 |
---|---|
[Python] 파이썬 함수의 세계: 각종 함수 유형 마스터하기 - 2탄 (41) | 2023.10.17 |
[Python] @dataclass로 서점 데이터베이스 만들기 (18) | 2023.10.13 |
[Python] @dataclass로 파이썬 클래스 마스터하기 (68) | 2023.10.11 |
[Python] 30초 만에 배우는 Python 한 줄 코드: 코드를 더 깔끔하고 효율적으로! (50) | 2023.10.09 |