관리 메뉴

정리왕

파이썬 함수 3 (함수의 4가지 종류) 본문

6.개발/파이썬 공부하기

파이썬 함수 3 (함수의 4가지 종류)

정리합니다 2020. 11. 29. 15:37
반응형

입력값과 결과값에 따른 함수의 형태

함수는 들어온 입력값을 받아 어떤 처리를 하여 적절한 결과값을 돌려준다.

 

함수의 형태는 입력값과 결과값의 존재 유무에 따라 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

 

 

즉 입력값도 결과값도 없는 함수는 다음과 같이 사용한다.

 함수이름( )
반응형
Comments