본문 바로가기
Python/Coding Base

8. 함수(function) 1 - 인수, 매개변수, 반환 값

by Nanki 2022. 1. 18.

함수는 특정 작업을 수행하는 명령어들의 모음을 말한다. 객제 지향 프로그래밍 언어에서는 이 함수를 메서드(method)라 부른다. 함수는 제조 공장과 같다. 원자재(입력)를 넣어서 여러 제조공장들(명령어들)로 이루어진 제조공장(함수)이 가동되고 반환(return, 반환 값)된다. 

함수, 왜 사용할까?

`. 위의 제조공장의 예를 조금 더 빌려보면, 함수는 필요할 때 주머니에서 꺼내 쓰는 제조 공장과 같다.

즉, 여러 명령어들의 묶음을 하나의 함수 이름으로 호출(call) 함으로써 굉장히 편리하게 사용할 수 있다.

2. 여러 차례 꺼내 쓸 수 있기 때문에 명령어들을 여러번 복사하거나 쓸 필요가 없어 간결하다.

3. 간결하게 묶여진 명령어들의 집합이 모여있으면 큰 프로그램이라도 구조화된 프로그램이 가능하다.

4. 구조화되어 있기 때문에 유지보수가 편리하다.

요약 : 함수를 사용하면 프로그래밍의 편리성 증대, 명령어의 중복을 피하는 간결성 증대, 구조화하여 체계적이며, 사후관리가 가능하다.

함수의 논리 흐름

함수의 논리 흐름은 다음과 같다.

입력( 매개변수, 인자값, parameter, arguments) ▶ 작업(명령어 들) 반환(return값, 반환값)

함수의 문법

함수 문법을 구분 지어 분리해보자.

def 함수이름( 매개변수1 , 매개변수2 ) :
	문장1
	문장2

[선언부] def : 함수를 정의하는 키워드

[선언부] 매개변수 : 외부로부터 작업에 필요한 데이터를 받는다. 없어도 됨.

[구현부] 문장 1, 문장 2 : 함수의 몸체

인수(argument)와 매개변수(parameter), 반환 값(return)

인수는 호출 프로그램에 의해서 함수에 실제로 전달되는 값.

매개변수는 인수를 전달받은 변수이다. 

아래 예시는 등차수열의 합을 수식으로 나타낸 코드이다.

def get_num (start, end ):
	sum = 0
    for i in range(start, end +1):
    	sum +=i
    return sum
    
as = get_num(1,10)

start에 1을, end에 10을 대입한다. 이 말을 달리하면

 = "매개변수(start, end)에 인수를 각각 대입한다"라는 의미가 된다.

  • 매개변수는 수학과 통계학의 모수와 같이 함수에서 어떠한 성질을 나타내는 변수를 나타낸다. 만약 y=ax+b에서 a와 b는 고정되어 있는 상태이며 함수만의 고유의 특성이 된다. 즉, a와 b를 매개로 x와 y의 관계가 바뀐다. 

즉, get_num의 함수는 start, end 매개 변수에 따라 함수의 성질이 바뀌어 값이 계산된다.

그리고 이 계산된 결과를 반환 값(return value)이라 부르며 자신을 호출한 곳으로 값을 반환한다.

이를 위 예시에서 순서를 다시 짚어보면

  • 매개변수의 계산(for 문)이 sum에 대입 ▶ as에 sum값을 대입

as에 반환 값인 55가 저장이 된다.

 

만약 반환 값이 존재하지 않으면 None이라는 값을 반환한다.

  • None 은 어떤 객체도 참조하지 않는다는 의미이다.
  •