미니 프로젝트나 큰 프로젝트를 진행할때 함수를 안쓸 수는 없을 것입니다. 함수는 파이썬의 기본 작업 단위로 호출하면 작업을 수행하고 결과를 반환해줍니다. 오늘은 파이썬에서 함수를 어떻게 정의하고 또 어떻게 호출하는지에 대해 알아보겠습니다.
파이썬에서 함수는 def
라는 키워드로 시작합니다. def
는 define의 약자로 "정의하다"를 뜻합니다. 그 뒤로는 함수의 이름, 그리고 매개변수, 그리고 내부 코드가 존재합니다. 아래 코드가 기본적인 형태입니다.
def example_function(parameter):
print(parameter)
위의 함수는 parameter
를 받으면 그것을 출력하는 역할을 해줍니다. 정의를 해보았으니 이번에는 호출을 해보겠습니다.
a = "Hi"
example_function(a) # Hi
호출을 할때는 위와 같이 함수의 이름과 괄호안에 매개변수로 들어갈 값만 정의해주면 됩니다. 경우에 따라서 매개변수가 없는 함수도 존재하는데 그런 경우에는 괄호를 비워두면 됩니다.
추가로 알아둬야할 것은 함수는 호출되기 전에 정의되어 있어야합니다!
위의 함수에서는 한개의 매개변수와 0개의 return 값이 존재했습니다. 하지만 사용해야하는 정보가 많아질수록 여러개의 매개변수와 여러개의 return 값이 있는 함수를 만들 때도 있습니다.
예를 들어 3개의 정수를 받아서 모두 곱한 값을 반환하는 함수를 구현한다 합시다. 그럼 매개변수는 3개 return해야 하는 값은 1개겠죠.
def Mult(num1,num2,num3):
result = num1 * num2 * num3
return result
이런식으로 여러개의 매개변수를 가진 함수를 만들 수 있습니다. 또한 여러 종류의 자료형을 매개변수로 둔 함수도 만들 수 있습니다.
위의 함수는 모두 곱하는 함수였다면 서로서로 곱한 값을 반환해야할 때는 어떻게 될까요?
def Mult2(num1,num2,num3):
return num1*num2, num1*num3, num2*num3
a = 1
b = 2
c = 3
r1,r2,r3 = Mult2(a,b,c) # r1 = 2, r2 = 3, r3= 6
위의 함수처럼 return 값이 여러개일 때는 그것을 받는 변수도 여러개여야 합니다.