본문 바로가기
Python/파이썬 기초

함수 생성 및 결과출력(def, return) - 파이썬 기초(19)

by 콩돌 2018. 12. 26.
반응형

참고 자료

https://docs.python.org/ko/3/tutorial/controlflow.html

https://docs.python.org/ko/3/reference/compound_stmts.html



파이썬 버전 3.7 기준



파이썬에서의 함수 생성 및 출력


본 포스팅에서 다루는 구문은 다음과 같다.

def, return 등.



함수의 정의 def

  ○ def 구문은 함수를 정의하기 위한 구문이다.

  ○ 함수를 정의하기 위한 형식은 아래와 같이 적을 수 있다.

  ○ 입력변수의 적용은 선택이므로 적용하지 않아도 무방하다. 

    ▷ 즉, 함수 외부에서 변수를 입력할 필요가 있을 경우에 적용하면 된다.

    ▷ 함수의 입력변수의 개수는 코드작성자의 필요에 따라 넣으면 된다.

  ○ 입력변수를 입력할 경우 기본값을 넣을 수 있으나 선택사항이다. (키워드 인자라고도 한다.)

    ▷ 기본값을 넣을 경우 값이 외부에서 입력되지 않을 경우 자동으로 기본값을 넣고 함수를 실행한다.

    ※ 주의사항 : 기본 값의 입력은 함수가 생성될 때 한번만 입력되므로 코드를 작성할 때 이 부분을 염두해 두어야한다.


def 구문 형식의 예)

# 입력변수를 적용하지 않은 경우

def 함수이름(): 


# 입력변수를 적용하고 기본값을 입력하지 않는 경우

def 함수이름(입력변수명1, 입력변수명2, 입력변수명3, ...): 


# 기본값을 입력하는 경우(키워드 인자)

def 함수이름(입력변수명1=기본값1, 입력변수명2=기본값2, 입력변수명3=기본값3, ...): 



함수에서의 결과 출력 return

  ○ return 구문은 함수의 결과를 출력하기 위한 구문이다.

  ○ 함수의 결과를 출력해주는 구문이므로 보통 함수의 마지막에 넣어주며 아래와 같은 형식으로 작성하면 된다.

    ▷ 출력변수의 개수는 코드작성자 마음대로 설정할 수 있다.

  ○ 함수의 결과를 출력해줄 필요가 없을 경우에는 return 구문의 사용하지 않아도 무방하다. 

    ▷ 이 경우 자동으로 None값을 반환한다.

  ○ return 구문 뒤에 내용이 있더라도 return 구문이 시작되는 시점에서 함수의 실행은 끝난다.


return 구문 형식의 예)

    return 출력변수1, 출력변수2, ...


  ○ 만약 조건에 따라 출력하는 값을 바꾸고 싶다면 if(elif, else절 포함) 구문과 조합하여 여러 개의 return 구문을 사용하면된다.

    ▷ 이렇게 조건에 따라 결과가 달라지는 함수를 작성하고 싶다면, 가독성 측면에서 모든 if, elif, else내용에 return 구문을 사용하는 것이 권장된다.


return 구문 형식의 예)

    if 조건문1: return 출력변수1-1, 출력변수1-2, ...

    elif 조건문2: return 출력변수2-1, 출력변수2-2, ...

    elif 조건문3: return 출력변수3-1, 출력변수3-2, ...

    ....

    else: return 출력변수N-1, 출력변수N-2, ...



함수의 형태 및 함수 설명

  ○ 함수의 내용에 해당하는 부분을 작성하기 위해서는 같은 크기의 들여쓰기나 탭을 활용하면 된다.

    ▷ PEP8에서는 4개의 들여쓰기로 함수 안 혹은 구문 안에 있다는 것을 표현하도록 권장한다.

  ○ 함수 정의(def 구문) 바로 아래에 세개의 따옴표 혹은 세개의 쌍따옴표를 사용한 닥스트링을 사용할 경우 함수의 설명을 적어놓을 수 있다. 

    ▷ 이렇게 작성된 닥스트링은 코드의 가독성을 향상시켜, 다른사람 및 자신이 작성한 오래된 코드를 이해하기 편리하게 된다.

    ▷ 또한, help() 함수를 통해 함수의 설명을 볼 수 있게 하므로 매우 유용하다.


함수 형식의 예)

def 함수이름(입력 변수1=기본값1, ..): 

    ''' 함수 설명 '''

    내용

    return 출력 변수1, ...



함수의 사용

  ○ 작성된 함수는 다음 예와 같이 사용될 수 있다.

  ○ 변수의 입력값을 직접 입력할 경우 순서를 고려하여 입력하여야한다.

  ○ 키워드 인자로 입력을 할 경우 입력순서는 상관이 없다.

   ※ 입력변수를 직접 입력하는 것과 키워드 인자를 입력하는 것을 섞어서 사용할 경우, 키워드 인자는 반드시 직접입력하는 것 뒤에 사용되어야 한다.


함수의 사용 예)

# 변수를 직접 순서대로 입력

출력변수1, ... = 함수이름(입력 값1, 입력 값2, ... )


# 키워드 인자를 사용한 입력

출력변수1, ... = 함수이름(입력변수1=입력 값1, 입력변수2=입력 값2, ... )



함수 사용 예제)

In[2]: def print_ex(v1='1', v2='2', v3='3'):

   ...:      print('v1 is ', v1); print('v2 is ', v2); print('v3 is ', v3)

   ...:     

In[3]: print_ex()

v1 is  1

v2 is  2

v3 is  3

In[4]: print_ex('variable 1', 'variable 2', 'variable 3')

v1 is  variable 1

v2 is  variable 2

v3 is  variable 3

In[5]: print_ex('variable 1', 'variable 2')

v1 is  variable 1

v2 is  variable 2

v3 is  3

In[6]: print_ex(v3='variable 1', v1='variable 2')

v1 is  variable 2

v2 is  2

v3 is  variable 1


반응형

댓글