24.3 함수의 결과를 반환하기
앞에서 만든 add 함수는 두 수를 더해서 바로 출력했습니다. 그럼 함수에서 값을 꺼내 올 수는 없을까요?
이번에는 add 함수의 결과를 반환하는 방법을 알아보겠습니다. 다음과 같이 함수 안에서 return을 사용하면 값을 함수 바깥으로 전달할 수 있습니다.
def 함수이름(매개변수): return 반환값
그럼 두 수를 더해서 반환하는 add 함수를 만들어보겠습니다. 매개변수에 a와 b를 지정하고 그다음 줄에서 return으로 a와 b를 더한 값을 반환하도록 만듭니다.
>>> def add(a, b): ... return a + b ...
이제 add 함수에 10과 20을 넣고 결과를 x에 저장합니다. 그리고 x의 값을 출력해봅니다.
>>> x = add(10, 20) >>> x 30
x의 값을 출력해보면 10과 20을 더한 값인 30이 나옵니다. 이처럼 return을 사용하면 값을 함수 바깥으로 전달할 수 있고, 함수에서 나온 값을 변수에 저장할 수 있습니다. return으로 반환하는 값은 반환값이라고 하는데 함수를 호출해준 바깥에 결과를 알려주기 위해 사용합니다.
add 함수의 호출 과정을 그림으로 표현하면 다음과 같은 모양이 됩니다.
![그림 31 3 함수의 반환값을 변수에 저장](https://dojang.io/pluginfile.php/9020/mod_page/content/2/031003.png)
반환값은 변수에 저장하지 않고 바로 다른 함수에 넣을 수도 있습니다. 다음은 print에 add를 바로 넣어서 결과를 출력합니다.
>>> print(add(10, 20)) 30
참고로 다음과 같이 매개변수는 없지만 값만 반환하는 함수를 만들 수도 있습니다.
>>> def one(): ... return 1 ... >>> x = one() >>> x 1
return은 값을 반환하는 기능뿐만 아니라 함수 중간에서 바로 빠져나오는 기능도 있습니다. 다음은 매개변수 a가 10이면 함수를 그냥 빠져나옵니다.
>>> def not_ten(a): ... if a == 10: ... return ... print(a, '입니다.', sep='') ... >>> not_ten(5) 5입니다. >>> not_ten(10) >>>
not_ten 함수에 5를 넣으면 print로 '5입니다.'를 출력하지만 10을 넣으면 return으로 함수 중간에서 바로 빠져나오므로 그 아래에 있는 print는 실행하지 않습니다. 따라서 아무것도 출력되지 않죠. 이처럼 return은 함수 중간에서 빠져나올 때 자주 사용합니다. 보통은 if와 조합해서 특정 조건일 때 함수 중간에서 빠져나옵니다.