본문 바로가기
프로그래밍 언어(Programming Languages)/파이썬(Python)

[Python] 파이썬 함수의 세계: 각종 함수 유형 마스터하기 - 1탄

by 데이터 벌집 2023. 10. 16.

파이썬 함수의 세계: 각종 함수 유형 마스터하기

 

파이썬은 강력한 프로그래밍 언어로서 다양한 종류의 함수들을 제공하고 있습니다. 이러한 함수들은 각각의 특별한 용도와 미묘한 차이점을 가지고 있습니다. 이 글에서는 파이썬 내에서 사용 가능한 다양한 함수 유형들을 깊게 탐구하고, 이러한 함수들을 어떻게 정의하고 코드 내에서 활용할 수 있는지에 대한 방법을 알아보겠습니다. 함수의 유형에는 내장 함수, 사용자 정의 함수, 익명 함수, 고차 함수, 재귀 함수, 그리고 제너레이터 함수가 포함됩니다. 이러한 각 함수 유형의 특징과 활용 방법을 함께 배워봅시다.

 

파이썬 함수

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탄에서는 다른 다양한 함수 유형과 함께 함수와 관련된 고급 기법과 패턴들을 탐구해 보겠습니다.