파이썬 return이 이해가 잘 안될때 (파이썬 함수)
파이썬 return이 이해가 잘 안될때 (파이썬 함수) — #파이썬return #파이썬함수 AI스쿨 msa기반 java 백엔드 코스 중에 공부한 내용을 작성하였습니다 파이썬...
#파이썬return #파이썬함수
AI스쿨 msa기반 java 백엔드 코스 중에 공부한 내용을 작성하였습니다
파이썬 함수
파이썬 자습서 4장의 마지막 파이썬 함수에 왔습니다. 개인적으로 진입장벽이 높은 부분이지 않나 싶은데, 한번 뚫어 놓으면 다른 언어에서도 적용가능하기에 천천히 함께 공부해봅시다.
파이썬 함수
다음 결과는 무엇일까요?
파이썬에서 함수를 정의할때는 def를 사용합니다.
| def function(a,b): result = a \* b print(result)print(function(2,3)) |
|---|
위 코드는 function이라는 함수를 만들었음을 의미합니다. a,b를 매개변수로 받고 function(a,b)로 호출할 수 있습니다. 위 코드의 결과는 무엇일까요?
| 6none |
|---|
6이라고 생각했던 분들에게 return을 알려드릴 수 있어서 영광입니다. (^^)
사실 저도 함수의 return에 대한 이해를 쉽게 하지 못했습니다. 여러 블로그나, 커뮤니티를 찾아 설명글을 읽어보니 다른 사람들은 상식처럼 받아 들이시던군요...!
이전글을 통해서 return을 설명하기도 했지만, 근본적으로 return은 왜써야하는지 몰랐습니다.
저와 비슷한 경험을 하신 분들에게 이번글을 통해 return을 조금이나마 더 이해하실 수 있었으면 좋겠습니다.
함수 내부에서만 유효한 result
우선 6과 none이라는 값이 어디서 나왔는지 알아봅시다.
| def function(a,b): result = a \* b print(result)print(function(2,3)) |
|---|
| 6 = def로 정의된 함수 내부 print(result)none = function(2,3)을 print했을때 |
|---|
우선 함수내부에 있는 print(result)의 결과값이 6임을 먼저 이해하셔야 합니다.
result라는 변수는 우선 함수 내부에서만 존재합니다. 외부에서 a = 2, b = 3 이라는 값을 대입하면 내부의 result는 6이됩니다. 이 결과를 출력하면 당연히 6이죠.
하지만 외부에서 호출한 function(2,3)에는 result값이 담기지 않습니다. result는 내부에서만 유효한 변수이기 때문이죠!!
그 결과 호출한 function(2,3)에는 아무값도 담기지 않게 됩니다.
return으로 값을 넘겨주기
외부에서 호출한 function(2,3)에 result의 값을 넘겨주려면 다음과 같이 코드를 수정합니다.
| def function(a,b): result = a \ b return* resultprint(function(2,3)) |
|---|
| 6 |
|---|
이제야 비로소 result를 외부로 넘겨주어 값이 제대로 출력된것을 확인할 수 있습니다. 다만 result의 결과값만 넘겨준거라 result를 외부에서 사용할 수 없습니다.
print함수는 값을 return하지 않는다.
가장 많이 쓰이는 print함수는 값을 return하지 않습니다. 다음 예제를 함께 보겠습니다.
| a = print(10)print(a) |
|---|
| 10none |
|---|
print( )함수는 "화면에 ~을 출력하시오"라는 연산이 내재되어있습니다. 하지만, 그 값을 반환하지는 않습니다.
따라서 print(a)를 출력해도 print(10)의 결과값 자체가 없기 때문에 none이 출력됩니다.
