-
[파이썬] return 과 print의 차이점파이썬 2020. 1. 31. 00:13
1. return의 역할
[역할1] 함수 호출 부분을 return 뒤에 작성으로 반환시킨다.
return 예시 1 예를 들면, 왼쪽 이미지 속 3,4번 절차에 해당된다.
4번째 행 'print(f(3))' 로 인해 함수 f(x) 가 호출된다. 호출된 함수 f(x) 는 return 뒤 x + 1 값을 반환시키게 된다. 이때, f(3) 에서 x = 3으로 정의되었기 때문에, x = 3 을 대입한 결과 값 4를 반환하게 된다.
그 결과 최종적으로 print(f(3)) = print(4) 가 되어 4가 출력이 되는 것이다.
[역할2] 현재 함수의 실행을 멈추고 함수 호출이 끝나는 지점부터 다시 진행한다.
return 의 2번째 기능은 호출된 함수를 끝내는 것이다.
def 로 정의된 함수 내에서 return 이 나오면 함수가 종료된다고 이해하면된다.
예를 들어, 4행의 print(f(3)) 으로 인해 1행에 있는 def f(x) 가 호출되었다고 하자.
이때 return 은 호출된 함수 f(3) 에 대해 4를 반환 시킨 뒤에, return의 역할을 완전 수행했으니 함수가 종료되었다고 생각하는 것이다.
결과적으로 3행에 작성된 return 뒤 print("마늘떡볶이") 는 실행되지 않아 결과값으로 출력되지 않으며, 이렇게 return 뒤에 위치하고 있어 수행되지 않는 코드르 Dead Code 라고 지칭한다.
2. print()의 역할
print 뒤 () 내에 적힌 값을 출력하는 명령어
만약 print 가 선언되지 않으면, 콘솔 창에 결과 값이 출력되지 않는다. 예를 들어, 아래와 같이 작성된 경우, print에 대한 선언이 없기 때문에 콘솔 창에 값이 출력되지 않을 것이다.
def f(x) return (x + 2) f(3)
3. return vs print 기능 비교
(1) print는 출력 값을 보여주는 기능이며, 출력 값 생성을 위해 함수를 호출하게 된다.
(2) return은 정의된 함수에 대한 호출이 있을 때 값을 반환시켜주는 기능이다.
(2) 모든 함수는 어떤 값을 return 해야한다. 이때 함수 내에 반환값인 return이 정의되지 않은 경우 None을 결과 값으로 뱉어내게 된다. (아래 4번 내용 참고)
4. 함수 내 return이 정의되지 않은 경우
return 은 함수를 종료 시켜주는 역할을 수행한다. 그런데 만약 함수 내에 return 에 대한 정의가 없다면 어떻게 될까?
이런 경우에는 결과값으로 None 을 반환하도록 되어 있다.
return이 정의되지 않은 경우 위 예시를 보면, 결과 값으로 4와 None 이 출력된 것을 볼 수 있다.
- 결과값 4는 def 함수 속 print(x+2) 의 결과로 4가 출력된 것이다.
- 결과값 None 은 def 함수가 모두 실행되었지만 return에 대한 정의가 없어 반환한 값이다.
'파이썬' 카테고리의 다른 글
[파이썬] Pandas 에서 FileNotError 해결하기 (1) 2020.01.26