Python 함수선언
def 함수명(매개변수):
...
...
...
특징 : 함수의 자료형을 따로 정해주지 않아도 된다.
그렇기 때문에 함수에서 값을 리턴해주고 싶다면 그냥 return을 이용하
면 된다. 매개변수 역시 자료형을 표현해 주지않아도 된다.
ex)
def add(a, b):
return a+b
print(add(1,3))
리턴값이 있는 함수는 변수에 값을 넣을 때 자주 이용합니다.
def add(a, b):
return a+b
a = add(1,3)
print(a)
그렇기 때문에 이렇게 사용할 수도 있습니다.
함수의 매개변수는 꼭 있어야만 하는 것은 아닙니다.
이는 함수에게 아무것도 전달해 주지 않고 함수를 호출시 함수안의 실행문만 실행하는 방식입니다.
def su():
return 10
print(su())
그리고 함수에서 꼭 값을 반환 하지 않아도 됩니다.
def add(a, b):
print(a+b)
add(1,3)
함수의 매개변수를 선언할 때 미리 초기화 하기.
def cal(a, b, mod = 'add'):
if(mod == 'add'): return a+b
if(mod == 'sub'): return a-b
if(mod == 'mul'): return a*b
if(mod == 'div'): return a/b
a = cal(1,2)
b = cal(1,2,'add')
c = cal(2,3,'mul')
print(a,b,c)
함수를 정의할 때, 매개변수를 미리 초기화 할 수 있습니다. 이러한 매개변수를 디폴트 매개변수라고 합니다.
디폴트 매개변수는 함수를 호출할 때 디폴트 매개변수에 해당하는 인자값을 입력해 주지 않아도 미리 초기화한 상태로 함수에 넘겨지게 됩니다.
디폴트 매개변수를 함수를 정의할 때 주의할 점은 일반적인 매개변수 뒤에 두어야 한다는 것 입니다.
그렇지 않으면, 함수를 호출할때 넘겨준 매개변수를 함수를 정의한 매개변수의 순서와 매칭이 안되어 오류를 내게됩니다.
def cal(a, mod = 'add', b ): #이 경우 오류
if(mod == 'add'): return a+b
if(mod == 'sub'): return a-b
if(mod == 'mul'): return a*b
if(mod == 'div'): return a/b
a = cal(1,2)
b = cal(1,2,'add')
c = cal(2,3,'mul')
print(a,b,c)
함수의 인수값의 개수가 가변적일 때
def add(*data):
sum = 0
for i in data:
sum = sum + i
return sum
print(add(1,2,3))
print(add(1,2,3,4,5))
함수를 정의할 떄 매개변수의 앞에다가 *을 붙여주면 함수를 메인에서 사용할 때, 함수의 인자값의 수를 가변적으로 넘겨줄 수 있습니다.
*을 매개변수에 붙이면 매개변수를 함수가 받을 때, 여러개의 인자값들을 튜플로 만들어 넘어가게 됩니다.
키워드 파라미터
def man(**info):
print(info)
man(name = 'john', old = 34)
**를 매개변수에 붙이면 함수를 사용할 때 인자값을 key = value 형식으로 넘겨줘야하며 함수의 매개변수 info는 입력받은 한쌍의 key, value값을 딕셔너리 형식으로 저장됩니다.
*만 붙였을 때와 동일하게 입력하는 인자값의 개수는 가변적입니다.
'코딩 > Python!' 카테고리의 다른 글
클래스 - 객체생성, 생성자, 소멸자, 생성자 오버로딩 [Python] (0) | 2018.07.20 |
---|---|
NumPy 배열 생성, max(), min() [Python] (0) | 2018.06.08 |
재귀함수 [Python] (0) | 2018.06.06 |
2차 리스트 [Python] (0) | 2018.05.28 |
리스트 [Python] (0) | 2018.05.11 |