알고리즘 연습을 하다가 return과 print의 개념에 대해 명확히 짚고 가면 좋겠다 싶어서 작성해본다.
먼저,
return -> 말 그대로 값을 '반환'하는 것이고
print -> 말 그대로 값을 '출력'하는 것이다.
그런데 왜 헷갈릴까? 다음의 예시를 살펴보자.
# return 예시 함수
def func1(x):
a = 10
b = 3
ans = a + b*x
return ans
c = func1(10) # 반환 값은 40
c
# print 예시 함수
def func2(x):
a = 10
b = 3
ans = a + b*x
print(ans)
d = func2(10) # 출력 값은 40
d
(indent가 왜 저렇게 뜨는지 모르겠다;;)
c의 값 d의 값은 모두 40으로 같다.
하지만 c의 경우, 출력을 하지 않았기 때문에 화면 상에 출력되지 않는다.
d은 print 값이므로 화면에 40이 출력되는 것을 확인할 수 있다.
그렇다면 다음의 경우는 어떨까?
# return 예시 함수
def func1(x):
a = 10
b = 3
ans = a + b*x
return ans
c = func1(10) # 반환 값은 40
print(c)
# print 예시 함수
def func2(x):
a = 10
b = 3
ans = a + b*x
print(ans)
d = func2(10) # 출력 값은 40
print(d)
이번에는 첫번째 코드의 결과값은 40으로 출력된다.
return이 된 값을 print하라는 명령이 들어갔기 때문에 화면에 잘 출력되는 것을 알 수 있다.
두번째 코드의 경우 두 가지 값이 출력된다.
40
None
40이 뜬 이유는 func2 함수 자체가 print하라는 명령을 포함하고 있으므로
d에 대한 정의만 내렸음에도 40이 출력되는 것이고,
None이 뜬 이유는 print 명령은 값을 반환하는 것이 아니므로,
d에 40이라는 값이 return이 된 것은 아니기 때문에
d에는 아무런 값도 지정되지 않았으므로 None이 뜨는 것이다.
정리하자면,
return : 값을 반환, 즉 계산된 결과를 돌려준다(특정 변수에 지정가능)
print: 값을 출력, 즉 계산된 결과를 단지 화면에 보여준다(특정 변수에 지정되는 값이 아님!)
참고사이트
'Python' 카테고리의 다른 글
[Pandas] datetime / dt / dt.isocalendar (0) | 2022.11.16 |
---|---|
메소드 오버라이딩과 메소드 오버로딩 in Python (0) | 2022.09.01 |