ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [파이썬] 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
Designed by Tistory.