Python 함수 소개: def, 매개변수, return 이해하기

Ad Placeholder

Python을 공부하다 보면 코드가 점점 길어지면서 같은 코드를 반복해서 작성해야 하는 상황이 생깁니다. 이때 사용하는 것이 함수입니다.

함수는 특정 작업을 수행하는 코드를 하나의 단위로 묶어 필요할 때마다 호출할 수 있도록 만들어 줍니다. 반복되는 코드를 줄일 수 있을 뿐만 아니라 프로그램을 기능별로 나누어 작성할 수 있기 때문에 Python에서 매우 중요한 개념입니다.

이번 글에서는 Python 함수의 기본 개념부터 함수 정의, 매개변수, 인자, return까지 함수의 가장 기본적인 내용을 살펴보겠습니다.

Python 함수란?

함수(Function)는 특정 작업을 수행하도록 작성한 코드의 묶음입니다.

예를 들어 두 숫자를 더하는 작업을 함수로 만들 수 있습니다.

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

이제 add()를 호출하면 전달한 두 숫자를 더한 결과를 얻을 수 있습니다.

result = add(10, 20)

print(result)

실행 결과:

30

같은 덧셈 작업이 필요한 곳에서 add()를 다시 호출할 수 있기 때문에 동일한 코드를 반복해서 작성할 필요가 없습니다.

Python 함수 기본 문법

Python에서는 def 키워드를 사용해 함수를 정의합니다.

def 함수이름(매개변수):
    실행할 코드
    return 반환값

예를 들어 다음과 같이 작성할 수 있습니다.

def hello():
    print("안녕하세요.")

함수를 정의한 것만으로는 코드가 실행되지 않습니다. 실제로 실행하려면 함수를 호출해야 합니다.

hello()

결과:

안녕하세요.

여기서 def는 함수를 정의하기 위한 키워드이고, hello는 함수의 이름입니다.

함수 내부의 코드는 반드시 들여쓰기해서 작성해야 합니다.

매개변수와 인자

함수는 외부에서 값을 전달받아 사용할 수 있습니다.

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

여기서 a와 b를 매개변수(parameter)라고 합니다.

함수를 호출할 때 실제 값을 전달할 수 있습니다.

add(10, 20)

이때 10과 20은 인자(argument)입니다.

정리하면 다음과 같습니다.

구분의미
매개변수함수를 정의할 때 사용하는 변수
인자함수를 호출할 때 전달하는 실제 값

따라서 다음 코드에서는 a, b가 매개변수이고 10, 20이 인자입니다.

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

add(10, 20)

return이란?

return은 함수의 실행 결과를 호출한 곳으로 반환할 때 사용합니다.

def multiply(a, b):
    return a * b

반환된 값은 변수에 저장할 수 있습니다.

result = multiply(5, 4)

print(result)

결과:

20

return을 사용하면 함수의 결과를 다른 계산에도 활용할 수 있습니다.

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

result = add(10, 20) * 2

print(result)

결과:

60

print와 return은 다르다

초보자가 함수에서 가장 많이 헷갈리는 부분 중 하나가 print()와 return의 차이입니다.

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

이 함수는 결과를 화면에 출력할 뿐입니다.

반면 다음과 같이 작성하면 결과를 반환합니다.

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

즉, print()는 화면에 값을 보여주는 역할이고 return은 함수의 결과를 다른 코드에서 사용할 수 있도록 전달하는 역할입니다.

반환값이 없는 함수

함수에서 return을 사용하지 않을 수도 있습니다.

def hello():
    print("Hello")

이 함수는 메시지를 출력하는 작업만 수행합니다.

Python에서 함수가 명시적으로 값을 반환하지 않으면 실제 반환값은 None이 됩니다.

result = hello()

print(result)

결과:

Hello
None

따라서 함수의 결과를 다른 곳에서 사용해야 하는 경우에는 return이 필요합니다.

함수는 왜 사용할까?

함수를 사용하는 가장 큰 이유는 코드의 재사용과 기능 분리입니다.

예를 들어 할인 가격을 계산하는 코드를 여러 곳에서 사용한다고 생각해 보겠습니다.

함수를 사용하지 않으면 계산식을 여러 곳에 반복해서 작성해야 합니다.

price1 = 10000 * 0.9
price2 = 20000 * 0.9
price3 = 30000 * 0.9

함수로 만들면 다음처럼 사용할 수 있습니다.

def discount(price):
    return price * 0.9

이후 필요한 곳에서 함수를 호출하면 됩니다.

price1 = discount(10000)
price2 = discount(20000)
price3 = discount(30000)

계산 방법이 변경되더라도 함수 하나만 수정하면 되기 때문에 관리하기 편합니다.

함수의 기본적인 작성 방법

Python에서 함수를 만들 때는 함수가 어떤 역할을 하는지 명확하게 정하는 것이 중요합니다.

예를 들어 평균을 계산하는 함수라면 다음처럼 작성할 수 있습니다.

def calculate_average(values):
    return sum(values) / len(values)

사용 방법도 간단합니다.

numbers = [10, 20, 30, 40, 50]

average = calculate_average(numbers)

print(average)

결과:

30.0

이처럼 하나의 함수가 하나의 명확한 작업을 담당하도록 만들면 코드의 구조를 이해하기 쉬워집니다.

Python 함수에서 알아둘 기본 개념

이번 글에서 다룬 내용을 정리하면 다음과 같습니다.

개념설명
def함수를 정의하는 키워드
함수 호출정의한 함수를 실행하는 것
매개변수함수가 전달받는 값을 저장하는 변수
인자함수를 호출할 때 전달하는 값
return함수의 결과를 반환
None반환값이 없는 함수의 기본 반환값

함수에는 이외에도 기본 매개변수, 파라미터 패킹과 언패킹, 함수 객체, 일급 객체, 람다 함수, 지역 변수와 전역 변수 등 알아두어야 할 개념이 많습니다.

다만 이런 내용은 각각 별도의 개념으로 이해하는 것이 좋습니다. 다음 글부터 하나씩 살펴보겠습니다.

마무리

Python 함수는 복잡한 프로그램을 작은 기능 단위로 나누고, 반복되는 코드를 재사용하기 위한 기본적인 도구입니다.

처음에는 def로 함수를 정의하고, 매개변수를 통해 값을 전달한 뒤 return으로 결과를 반환하는 흐름만 이해해도 충분합니다.

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

result = add(10, 20)

print(result)

이 기본 구조에 익숙해지면 Python의 다양한 함수 문법을 이해하기가 훨씬 쉬워집니다.

다음 글에서는 함수에서 자주 사용되는 디폴트 파라미터와 기본값을 사용할 때 주의해야 할 점을 알아보겠습니다.


jiji

AI, Python, 생활정보와 정부 정책 정보를 쉽게 설명하는 정보 블로그입니다.

Ad Placeholder
Scroll to Top