본문 바로가기
파이썬/파이썬 기본 문법

[파이썬] 함수 function def

by Nov19 2018. 12. 10.
반응형


[파이썬] 함수


초등학교 수학에서 함수 관련 부분에서 다음과 같은 그림이 나온다. 

입력값을 넣으면 처리하여 결과값을 내놓는다는 함수의 그림으로 나온다.



프로그래밍에서도 반복적으로 사용되는 부분을 한 뭉치로 묶어서

"어떤 입력값을 주었을 때 어떤 결과값을 돌려준다" 라는 하나의 기능으로 만들어 사용한다.

이는 프로그래밍을 효율적으로 할 수 있게 하며

프로그램의 흐름도 잘 파악할 수 있고 에러가 어디에서 나는지도 금방 알아차릴 수 있다


파이썬 함수의 구조

def 함수명(입력 인수):

    <수행할 문장1>

    <수행할 문장2>

return 결과값


일반적인 함수는 입력인수를 입력값으로 넣어주고 결과값을 받는다. 

그러나 입력값이 필요없는 경우 입력값을 넣어주지 않아도 되고, 

결과값이 필요없는 경우 처리만 하고 결과값을 리턴하지 않아도 된다.



때에 따라 함수를 그냥 종료시킬 때가 필요하다.

return뒤에 결과값을 쓰지 않고 단독으로쓰면 함수를 그냥 빠져나오게 된다.


입력값이 몇 개가 될지 모를 때여러 개의 입력값을 받는 함수 만들기

입력값이 몇 개 인지 함수를 쓸 때 마다 다를 때가 있다. 이럴때는 패킹 packing 과 언패킹 unpacking 을 사용한다.

패킹은 여러개의 데이터를 모아 패킹해서 하나 쓰겠다는 말이다.

패킹하는 방법은 *를 붙인 인자를 사용한다. 관례적으로  *args를 사용한다.



입력인자로 넣은 1,2,3,4,5 가 하나의 데이터로 패킹되어져 입력되었다. 몇개를 인자로 입력하든 

처리하는 내용은 입력받은 모든 값을 합을 나타낸다.



패킹된 데이터는 다음과 같이 튜플로 묶여있다.


매핑된 데이터(딕셔너리)를 패킹하는 방법은 **를 써서 패킹한다.

관례적으로 **kwargs 를 사용한다.


입력 인수에 초기값 미리 설정하기


함수 입력 인수에 초기값을 설정할 때 주의할 사항

다음과 같이 초기값을 지정한 변수가 처음이나 중간에 오면

SyntaxError : non-default argumnet follows default argument

에러를 발생시킨다.

디폴트값으로 초기화 할 변수는 항상 가장 마지막부터 지정해야 한다.


반응형

댓글