Python 함수 이해하기: 정의와 사용법

목차

  1. 서론
  2. 함수란 무엇인가?
  3. 함수 정의하기
    1. 기본 함수 정의
    2. 매개변수와 인자
    3. 기본값 인자
    4. 가변 인자
  4. 함수 사용하기
    1. 함수 호출
    2. 반환 값
    3. 함수 안에서 함수 호출
  5. 람다 함수
  6. 실습 예제
  7. 용어 설명
  8. 마무리
  9. 추천 태그

1. 서론

Python 함수는 코드의 재사용성을 높이고, 코드의 가독성을 개선하는 데 중요한 역할을 합니다. 이번 포스팅에서는 Python 함수의 정의와 사용법을 초보 개발자도 쉽게 이해할 수 있도록 설명하겠습니다.


2. 함수란 무엇인가?

함수는 특정 작업을 수행하는 코드 블록입니다. 함수를 사용하면 코드의 중복을 줄이고, 모듈화하여 관리하기 쉬운 코드를 작성할 수 있습니다.


3. 함수 정의하기


3.1 기본 함수 정의

Python에서 함수를 정의할 때는 def 키워드를 사용합니다. 함수 이름과 괄호 안에 매개변수를 정의하고, 콜론(:)으로 끝냅니다. 함수의 본문은 들여쓰기로 구분합니다.


def greet():
    print("안녕하세요, 여러분!")

위 예제에서는 greet라는 이름의 함수를 정의하고, 이 함수는 호출될 때마다 "안녕하세요, 여러분!"을 출력합니다.


3.2 매개변수와 인자

매개변수(parameter)는 함수 정의 시 정의되는 변수이고, 인자(argument)는 함수 호출 시 전달되는 실제 값입니다.


def greet(name):
    print(f"안녕하세요, {name}님!")

greet("철수")  # 안녕하세요, 철수님!

위 예제에서는 name이라는 매개변수를 가진 greet 함수를 정의하고, 호출할 때 "철수"라는 인자를 전달합니다.


3.3 기본값 인자

함수 매개변수에 기본값을 설정할 수 있습니다. 기본값이 설정된 매개변수는 인자가 전달되지 않을 때 기본값을 사용합니다.


def greet(name="손님"):
    print(f"안녕하세요, {name}님!")

greet()          # 안녕하세요, 손님님!
greet("영희")    # 안녕하세요, 영희님!

위 예제에서는 name 매개변수에 "손님"이라는 기본값을 설정하였습니다.


3.4 가변 인자

가변 인자는 함수가 임의의 개수의 인자를 받을 수 있게 합니다. *을 사용하여 가변 인자를 정의합니다.


def greet(*names):
    for name in names:
        print(f"안녕하세요, {name}님!")

greet("철수", "영희", "민수")  
# 안녕하세요, 철수님!
# 안녕하세요, 영희님!
# 안녕하세요, 민수님!

위 예제에서는 *names를 사용하여 여러 개의 인자를 받을 수 있게 정의하였습니다.


4. 함수 사용하기


4.1 함수 호출

정의된 함수를 호출하려면 함수 이름 뒤에 괄호를 사용합니다. 필요한 인자를 괄호 안에 전달합니다.


def greet(name):
    print(f"안녕하세요, {name}님!")

greet("철수")  # 안녕하세요, 철수님!

4.2 반환 값

함수는 return 키워드를 사용하여 값을 반환할 수 있습니다.


def add(a, b):
    return a + b

result = add(3, 5)
print(result)  # 8

위 예제에서는 add 함수가 두 숫자를 더한 결과를 반환하고, result 변수에 저장합니다.


4.3 함수 안에서 함수 호출

함수는 다른 함수 안에서 호출될 수 있습니다.


def square(x):
    return x * x

def sum_of_squares(a, b):
    return square(a) + square(b)

result = sum_of_squares(3, 4)
print(result)  # 25

위 예제에서는 sum_of_squares 함수가 square 함수를 호출하여 두 숫자의 제곱의 합을 계산합니다.


5. 람다 함수

람다 함수는 익명 함수로, 간단한 함수를 한 줄로 작성할 때 사용됩니다. lambda 키워드를 사용하여 정의합니다.


add = lambda a, b: a + b
print(add(3, 5))  # 8

위 예제에서는 lambda를 사용하여 두 숫자를 더하는 익명 함수를 정의하고, add 변수에 할당합니다.


6. 실습 예제


최대값 찾기

리스트에서 최대값을 찾는 함수를 작성해보겠습니다.


def find_max(numbers):
    max_num = numbers[0]
    for num in numbers:
        if num > max_num:
            max_num = num
    return max_num

numbers = [1, 2, 3, 4, 5]
print(find_max(numbers))  # 5

팩토리얼 계산

재귀 함수를 사용하여 팩토리얼을 계산하는 함수를 작성해보겠습니다.


def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n - 1)

print(factorial(5))  # 120

피보나치 수열

피보나치 수열의 n번째 항을 계산하는 함수를 작성해보겠습니다.


def fibonacci(n):
    if n <= 0:
        return "잘못된 입력입니다."
    elif n == 1:
        return 0
    elif n == 2:
        return 1
    else:
        return fibonacci(n - 1) + fibonacci(n - 2)

print(fibonacci(10))  # 34

7. 용어 설명

  • 함수: 특정 작업을 수행하는 코드 블록입니다.
  • 매개변수(parameter): 함수 정의 시 정의되는 변수입니다.
  • 인자(argument): 함수 호출 시 전달되는 실제 값입니다.
  • 반환 값: 함수가 실행을 마친 후 반환하는 값입니다.
  • 람다 함수: 익명 함수로, 간단한 함수를 한 줄로 작성할 때 사용됩니다.

8. 마무리

이번 포스팅에서는 Python 함수의 정의와 사용법에 대해 자세히 알아보았습니다. 함수를 사용하면 코드의 재사용성을 높이고, 코드의 가독성을 개선할 수 있습니다. 다양한 예제를 통해 함수의 활용법을 익혀보시기 바랍니다. 다음 포스팅에서는 더 심화된 Python 주제를 다룰 예정입니다.

이 포스팅이 Python을 처음 접하는 분들에게 도움이 되길 바랍니다.

다음 이전