• 2020. 6. 27.

    by. 윈썸지니

    반응형

    출처 : pixabay

    이번 포스팅은 함수에 대한 내용입니다.

    제목을 사용자 정의 함수라고 했는데 파이썬에서 제공하는 내장 함수도 있으므로 사용자가 필요에 의해서 만드는 함수를 의미합니다.

     

    ● 함수는 무엇일까요?

     

    파이썬 자료형에 대한 포스팅에서 메소드 및 내장 함수에 대해 알아보았습니다.

     

    예를 들면 문자열이나 리스트등의 길이를 알려주는 len() 함수가 있습니다.

     len( 인수 ) 를 넣으면 길이 값을 반환해 줍니다.

    >>> x = "1234567890"
    >>> len(x)
    10
    >>> 

    파이썬에서 제공하는 내장 함수 len() 이지만 함수의 이해가 빠를 것 같아 예로 사용합니다.

    인수를 넣으면 계산을 해서 길이 값을 반환해 줍니다.

     

     len() 함수를 파이썬으로 구현해 보겠습니다.

    x = "1234567890"
    i = 0
    for temp in x:
         i = i+1
    print(i)

    두줄이면 될 코딩이 5줄이 되었습니다.

    그리고 문자열이나 리스트등의 길이를 구하는 일은 자주 코딩하게 되는 내용입니다.

     

    함수가 없다면 이럴 때 마다 5줄의 코딩을 반복해야 합니다.

    그리고 len()  이라고 코딩하면 길이를 구하는 구나 하고 단번에 알지만 위의 코딩으로 하게 되면 5줄을 보면서 분석하는 단계를 거쳐야 합니다.

     

    이렇듯 함수는 가독성 및 재 사용 가능한 내용을 여러 번 반복하지 않고 한번의 정의로 간단하게 사용 할 수 있게 해 줍니다.

    또한 프로그램 코딩시 그냥 길게 코딩하면 프로그램 흐름을 판단하기 어려워져 디버깅(오류가 발생하는 부분 찾기)이 어려울 수도 있습니다.

     

    함수를 사용함으로써 프로그램이 좀 더 간결하게 보이고 흐름 파악에 좋습니다.

     

    초보자들은 처음에 그냥 길게 코딩하게 마련입니다.

    처음에는 코딩을 해 보면 함수를 만들 부분이 보입니다. 같은 코드를 함수를 사용하여 만들어 보세요.

    이미 많이 사용할 만한 내용은 파이썬의 내장 함수로 만들어져 있다면 프로그램 하다 보면 함수 만들 일이 많이 있습니다.

     

    ● 함수는 어떻게 만들까요?

     

    함수는  아래와 같이 정의 합니다.

     

    def  함수명( 매개변수) :

        < 실행할 문장>      

        < 실행할 문장>      

        ….                        

        return 결과값         

     

    함수는 def 로 정의 합니다. 들여쓰기 까지를 하나의 함수로 봅니다.

     

    함수명은 변수명 규칙과 동일합니다.

    매개변수는 없어도 되고 여러 개 일 수도 있습니다.

    매개변수(parameter)는 함수에 전달되는 변수로써 인수, 인자, 파라메터 등의 용어로 사용합니다. 같은 말 입니다.

     

    return 은 함수가 끝납니다.

    return 다음의 결과값을 반환해 줍니다. 결과값이 없으면 return 은 없어도 됩니다.

     

    len과 같은 기능을 하는 함수를 만들어 보겠습니다.

     

    def user_len( x ) :
        i = 0
        for temp in x:
             i = i+1
        return i

    함수 호출은 내장 함수 호출하 듯이 함수명( 매개변수) 로 호출( call )하면 됩니다.

     

    >>> user_len( "1234567890" )
    10
    >>> ret = user_len( "1234567890" )
    >>> print( ret )
    10

    함수를 만들어 보았습니다.  

    주의 할 점은 함수를 사용하기 전에 함수는 정의 되어야 합니다.

     

    함수는 인수도 없고 , 리턴값도 없이 사용할 수 있다고 했습니다.

    아래 예제는 간단하게 매개변수, 리턴값이 없는 출력하는 함수를 만들어 보았습니다.

    >>> def title_print( ) :
        print( " ==== 제목 : 파이썬 함수 만들기 ====" )
        print( " ==== 작성자 : 행복한 코딩 ====" )

    >>> title_print()
     ==== 제목 : 파이썬 함수 만들기 ====
     ==== 작성자 : 행복한 코딩 ====
    >>> 

    이번 포스팅은 함수 정의하는 법을 알아 보았습니다.

    다음 포스팅에서 함수의 여러가지 매개변수 만드는 방법 및 리턴값도 여러 개 반환 할 수 있는 함수를 만들어 보겠습니다.

    반응형