• 2020. 6. 29.

    by. 윈썸지니

    반응형

    출처 : pixabay

    지난 포스팅은 함수 매개변수 만드는 여러 가지 방법에 대해 알아보았습니다.

    이번 포스팅은 함수의 리턴에 대해 알아봅니다.

     

    ● 함수 리턴이란?

     

    파이썬의 내장 함수 중 len()  함수를 예를 들면 len() 은 문자열 또는 리스트의  길이 값을 반환해 줍니다.

    이렇듯 험수를 호출 후 결과값으로 반환해 주는 값입니다.

    이 리턴 값은 있을 수도 있고 없을 수도 있습니다.

     

    리턴값이 없는 함수는 무슨값을 반환 값으로 돌려 줄까요?

    “None” 이라는 값을 돌려 줍니다.

     

    >>> def test( ) :
          print( "Hello" )
    >>> print(test())
    Hello    ## test 라는 함수를 실행해서 출력 됨.
    None   ## print( test() ) 의 test()  함수의 결과 값 출력
    >>> 

    리턴을 사용하는데 결과값을 지정 안 할 수도 있습니다.

    이때는 함수를 끝낼 때 사용합니다.

    만약 디버깅시에 중간에 함수를 끝내고 싶을 경우는 return 을 사용함으로써 중간에 끝낼 수도 있습니다.

    >>> def test( ) :
          print( "Hello" )
          return               ## 중간에 return 되므로 World는 출력 될 일이 없습니다.
          print("World")

    >>> test()
    Hello

    ## retuen 만 하면 return 이 없는 것 처럼 None 값을 돌려 줍니다. 
    >>> print( test() )
    Hello
    None
    >>> 

     

    ● 함수 리턴 값을 여러 개 받고 싶을 경우

     

    아래 예제는 리턴 값이 하나 일 경우 입니다.

    아래 예제에서 또 하나 발견 할 수 있는 것은 return 구문에서 수식 계산도 된다 입니다.

     

    수식 뿐만 아니라 파이썬 실행 구문을 사용 할 수 있습니다.

    함수를 호출 할 경우 결과 값을 변수로 받을 수 있습니다.

    보통은 변수로 받아서 처리 합니다.

    >>> 
    def user_sum( x, y, z ) :
        return x + y + z

    >>> a = user_sum( 1, 2, 3)
    >>> print( a)
    6
    >>> 

    ## 입력 받은 인자를 더하기, 곱하기 의 값을 리턴하는 함수 입니다.
    >>> def calc( x, y, z ) :
        return x + y + z,  x*y*z

    >>> a = calc( 2, 3, 4 )

     

    값을 2개 이상 리턴하는 함수는 결과값을 하나의 변수로 받아도 오류가 발생하지 않습니다.

    단지 튜플 형식으로 반환 합니다.

    >>> print(a)
    (9, 24)
    >>>

     

    리턴 값을 각 각의 변수로 반환 받고 싶으면 아래와 같이하면 됩니다.

    콤마 구분자로 각각 받아도 되고 튜플 형식으로 받아도 됩니다.

    >>> a, b = calc( 2, 3, 4 )
    >>> print(a)
    9
    >>> print(b)
    24
    >>> (a, b) = calc( 2, 3, 4 )
    >>> print(a)
    9
    >>> print(b)
    24
    >>> 

    결론은 값이 여러 개 일 때는 튜플 형식으로 반환한다 입니다.

     

    파이썬의 장점이 자료형에 따른 변수 선언이 없다는 것 입니다. 코딩하기 편하죠?

    리턴값도 아래에서 선언된 자료형과 같이 동일하게 반환해 줍니다.

     

    그냥 변수로 결과 값을 받으면 됩니다.

    이래 예제는 여러가지 자료형에 대한 결과 값을 반환해 주는 예제입니다.

    >>> def test():
        x = "abcdef"
        return x

    >>> test()
    'abcdef'
    >>> type( test())
    <class 'str’>

    >>> def test() :
        x = {'a' : 1, 'b' : 2 }
        return x

    >>> test()
    {'a': 1, 'b': 2}

    >>> type(test())
    <class 'dict'>
    >>> def test() :
        x = { 1,2, 3,4,5 }
        return x

    >>> test()
    {1, 2, 3, 4, 5}
    >>> type(test())
    <class 'set'>
    >>> 

    이번 포스팅까지 함수의 매개변수 및 리턴 값에 대한 내용을 알아 보았습니다.

    다음 포스팅에서는 함수에서 사용하는 변수들의 범위 및 함수에 인자를 전달 시 변화는 인자에 대해 알아봅니다.

    반응형