참고 자료
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
'Python > 파이썬 기초' 카테고리의 다른 글
리스트 컴프리헨션 - 파이썬 기초(21) (0) | 2018.12.28 |
---|---|
함수의 입력매개변수(*args, **kwarg)와 람다표현식 - 파이썬 기초(20) (0) | 2018.12.27 |
기타 흐름 제어(break, continue, else, pass) 구문 - 파이썬 기초(18) (0) | 2018.12.25 |
흐름 제어(if) 및 반복(for, while) 구문 - 파이썬 기초(17) (0) | 2018.12.23 |
기타 내장함수 - 파이썬 기초(16) (0) | 2018.12.21 |
댓글