함수는 특정 작업을 수행하는 명령어들의 모음을 말한다. 객제 지향 프로그래밍 언어에서는 이 함수를 메서드(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 은 어떤 객체도 참조하지 않는다는 의미이다.
'Python > Coding Base' 카테고리의 다른 글
10. 함수(function) 3 - 참조 값, 지역 변수, 전역 변수 (0) | 2022.01.23 |
---|---|
9. 함수(function) 2 - 디폴트 인수, 키워드 인수 (0) | 2022.01.23 |
7. 반복문(Iteration) - while문 (0) | 2022.01.13 |
6. 반복문(Iteration) - for문 (0) | 2022.01.11 |
5. 조건문 (0) | 2022.01.10 |