매개변수(Parameter)와 반환값(Return Value)

기본 함수의 경우에는 매개변수(인수(Argument) 또는 인자 라고도 불립니다.)도 반환값도 없는 가장 기본적인 형태의 함수였습니다. 하지만, 보통 함수는 입력된 값에 따라서 특정 기능을 수행하고 결과를 반환하는 것을 기본으로 합니다.

def normal_func(var_in1, var_in2):
    ret_var = 0
    if(var_in1 > var_in2):
        ret_var = var_in1 - var_in2
    else:
        ret_var = var_in2 - var_in1
    return ret_var

var_get = normal_func(12, 3)
print(var_get)

위 내용은 두 개의 매개변수를 입력 받아, 해당 내용의 차를 반환하는 함수의 작성과 그 이용에 관한 내용입니다. 1행을 보면 var_in1, var_in2 두 개의 매개변수를 입력받는 normal_func라는 함수가 선언되어 있습니다. 해당 내용은 단순히 두 개의 숫자를 비교해서 큰 값에서 작은 값을 빼고 해당 내용을 반환하는 함수입니다.

기본형 함수에서는 아무런 매개변수를 넣지 않았으나, 함수 선언시에 매개변수의 개수는 제한이 없습니다. 그러나, 너무나 많은 매개 변수의 경우 작성한 함수의 사용상에 어려움이 있기 때문에 적절한 매개변수를 사용해합니다. 반환값의 경우는 다른 언어와는 다르게 하나 이상으로 전달할 수 있습니다.

def normal_calc(var_in1 = 0, var_in2 =1):
    ret_add = 0; ret_sub = 0; ret_mul =0; ret_div = 0

    ret_add = var_in1 + var_in2
    ret_sub = var_in1 - var_in2
    ret_mul = var_in1 * var_in2
    ret_div = var_in1 / var_in2
    
    return ret_add, ret_sub, ret_mul, ret_div

var_ret = normal_calc(4.3, 2.1)
print(var_ret, type(var_ret)

예제는 두 개의 매개변수를 입력받아서 더하기, 빼기, 곱하기, 나누기 등을 실행하는 normal_cacl 함수를 만들었습니다. 내용을 살펴보면 9행에서 각 결과에 대한 4개의 반환값을 내보내는 것을 확인할 수 있습니다. 12행에서 이를 확인하면 해당 내용들이 튜플 형태로 전달받아지는 것을 확인할 수 있습니다. 결과적으로 본다면 한 번에 여러 반환값을 전달 받을 수 있지만, 이론적으로볼 때 실제 반환 값은 하나 입니다. Python의 특성상 이 내용들을 하나의 튜플로 묶어준다는 것을 기억하시면 됩니다.

그리고 내용을 보시면 아시겠지만, 1행의 매개변수 표현이 첫번째 예제와 조금 다릅니다. 보시는 바와 같이 매개변수에 관한 초기화가 되어 있습니다. 이러한 초기화는 원하지 않는 동작이 발생하지 않게 하기 위한 보호 장치가 될 수 있습니다.

예제

  1. 1부터 10까지의 합을 구하는 함수를 작성해 보세요.

  2. 입력된 숫자만큼의 팩토리얼(Factorial)을 구하는 함수를 작성해 보세요.

Last updated