Python

py) return과 print의 차이

HAN___ 2023. 5. 3. 09:03

알고리즘 연습을 하다가 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: 값을 출력, 즉 계산된 결과를 단지 화면에 보여준다(특정 변수에 지정되는 값이 아님!)

 

참고사이트

https://wikidocs.net/63