파이썬 함수 3 (함수의 4가지 종류)
입력값과 결과값에 따른 함수의 형태
함수는 들어온 입력값을 받아 어떤 처리를 하여 적절한 결과값을 돌려준다.
함수의 형태는 입력값과 결과값의 존재 유무에 따라 4가지 유형으로 나뉜다. 자세히 알아보자.
# 함수 첫번째 유형 - 일반적인 함수
입력값이 있고 결과값이 있는 함수가 일반적인 함수이다.
앞으로 여러분이 프로그래밍을 할 때 만들 함수는 대부분 아래와 비슷한 형태 일 것이다.
def 함수이름(매개변수): 수행할 문장
return 결과값
|
다음은 일반 함수의 전형적인 예이다.
>>> def add(a, b):
result = a + b
return result
>>>
add 함수는 2개의 입력값을 받아서 서로 더한 결과값을 돌려준다.
이 함수를 사용하는 방법은 다음과 같다. 입력값으로 3과 4를 주고 결과값을 돌려받아 보자.
>>> a = add(3, 4)
>>> print(a)
7
이처럼 입력값과 결과값이 있는 함수의 사용법을 정리하면 다음과 같다.
결과값을 받을 변수 = 함수이름(입력인수1 ,입력인수2) |
# 함수 두번째 유형 - 입력값이 없는 함수
입력값이 없는 함수가 존재할까? 당연히 존재한다. 다음을 보자.
>>> def say():
return 'Hi'
>>>
say라는 이름의 함수를 만들었다.
그런데 매개변수 부분을 나타내는 함수 이름 뒤의 괄호 안이 비어 있다. 이 함수는 어떻게 사용하는 걸까?
다음을 직접 입력해 보자.
>>> a = say()
>>> print(a)
Hi
위 함수를 쓰기 위해서는 say( )처럼 괄호 안에 아무 것도(인수) 넣지 않아야 한다.
이 함수는 입력값은 없지만 결과값으로 Hi라는 문자열을 돌려준다.
a = say( )처럼 작성하면 a에 Hi문자열이 대입되는 것이다.
이처럼 입력값이 없고 결과값만 있는 함수는 다음과 같이 사용된다.
결과값을 받을 변수 = 함수이름( ) |
# 함수 세번째 유형 - 결과값이 없는 함수
결과값이 없는 함수 역시 존재한다. 다음 예를 보자.
>>> def add(a, b):
print("%d, %d의 합은 %d입니다." % (a, b, a+b))
>>>
결과값이 없는 함수는 호출해도 돌려주는 값이 없기 때문에 다음과 같이 사용한다.
>>> add(3,4)
3, 4의 합은 7입니다.
즉 결과값이 없는 함수는 다음과 같이 사용한다.
함수이름(입력인수1, 입력인수2, .... ) |
결과값이 진짜 없는지 확인하기 위해 다음 예를 직접 입력해 보자.
>>> a = add(3, 4)
3, 4의 합은 7입니다.
아마도 여러분은 '3, 4의 합은 7입니다.'라는 문장을 출력해 주었는데 왜 결과값이 없다는 것인지 의하하게 생각할 것이다.
이부분이 초보자들이 혼란스러워하는 부분이기도 한데 print문은 함수의 구성 요소 중 하나인 <수행할 문장>에 해당하는 부분일 뿐이다.
결과값은 오직 return 명령어로만 돌려받을 수 있다.
이를 확인해 보자. 돌려받을 값을 a 변수에 대입하여 출력해 보면 결과값이 있는지 없는지 알 수 있다.
>>> a = add(3, 4)
3, 4의 합은 7입니다.
>>> print(a)
None
a 값은 None이다.
None이란 거짓을 나타내는 자료형이라고 언급한 적이 있다.
add함수처럼 결과값이 없을 때 a = add(3, 4)처럼 쓰면 함수 add는 반환 값으로 a 변수에 None을 돌려 준다.
이것을 가지고 결과값이 있다고 생각하면 곤란하다.
# 함수 네번째 유형 - 결과값도 없는 함수
입력값도 결과값도 없는 함수 역시 존재한다. 다음 예를 보자.
>>> def say():
print('Hi')
>>>
입력 인수를 받는 매개변수도 없고 return문도 없으니 입력값도 결과값도 없는 함수이다.
이 함수를 사용하는 방법은 단 한가지이다.
>>> say()
Hi
즉 입력값도 결과값도 없는 함수는 다음과 같이 사용한다.
함수이름( ) |