이전 포스팅들 에서는 기본적으로 사용하는 문법에 대해서만 알아 보았었다. loop 문에 대한 포스팅을 할때에도 언급한 적이 있는데, 프로그래머들은 코드를 반복하는 것을 제일 싫어한다. 사실 코드 반복은 반복문으로 어느정도 극복할 수 있는 것이 사실이지만, 훨씬 규모가 더 크고 반복적으로 사용해야 하는 하나의 '단위' 가 필요할 수 있다. 어떠한 제품이나 물건을 만들때 한사람이 전체의 물건을 만드는 것 보다 각각의 사람이 물건을 부분 부분 나누어 만든뒤, 조립하는 것이 더 효율적이다. 각각의 사람들은 자기가 맡은 부분의 부품만 만들어내면 되기 때문이다. 한사람이 전체를 만든다면 전체 제품의 모든 부분을 만드는 법을 다 알아야 하지만 나누어서 만들면 각각의 사람들이 제품 전체를 만드는 법을 알 필요가 없다. 보통 이러한 방법을 '모듈화' 라고 한다.
프로그래밍에서도 마찬가지이다. 반복문으로 해결될 만큼 간단하지 않으면서(결국 반복문도 여기저기 쓰이게 된다면 그것도 반복이다.) 복잡한 단위의 '모듈화' 를 이루고 있는 것이 바로 '함수' 이다. C언어와 C++ 에서도 마찬가지로 함수가 필수적으로 사용되고 있다. 그러나 파이썬문법과는 조금 차이가 있다. 그럼 파이썬에서 함수를 어떻게 쓰는지 살펴보도록 하겠다.
Python 에서의 함수의 정의
함수의 기본형은 다음과 같다.
def 함수명(인자1,인자2, ....):
함수본체
함수이름 앞에 def 라는 예약어를 써주고, 함수명을 차례로 써준다. 그리고 괄호 안에 함수가 받을 인자를 써준다. 함수 인자라는 것은 함수를 호출할때 넣어주어야 하는 값의 자리를 나타내며, 함수 본체 안에서 해당 함수 인자를 사용하여 함수 본체를 만들 수 있다. 아래는 간단한 계산기 함수를 구현한 코드이다.
def calculator(first, second, operator):
if operator == 'plus':
return first+second
elif operator == 'minus':
return first-second
elif operator == 'mux':
return first*second
elif operator == 'div':
return first/second
else:
print("invalid operator")
print(calculator(2,3,'plus'))
print(calculator(2,3,'minus'))
print(calculator(2,3,'mux'))
print(calculator(2,3,'div'))
함수의 이름은 calculator 로 정했고, 함수 인자는 3개를 받을 것이다. 함수 본체에는 조건문을 사용하여 구현하였으며, 마지막 인자로 받는 operator 는 어떤 연산을 할지 정보를 받는 역할을 한다. 연산 정보는 문자열로 받으며, 특정 문자열을 받았을 때, 산술 연산을 수행하여 리턴(return) 한다. 여기서 return 을 하게되면 함수가 종료되게 되며 return 한 값을 특정 객체에 저장할 수도 있고 위 처럼 바로 print로 출력할 수 있다.
함수의 호출
위 코드를 다시 한번 살펴보자.
def calculator(first, second, operator):
if operator == 'plus':
return first+second
elif operator == 'minus':
return first-second
elif operator == 'mux':
return first*second
elif operator == 'div':
return first/second
else:
print("invalid operator")
print(calculator(2,3,'plus'))
print(calculator(2,3,'minus'))
print(calculator(2,3,'mux'))
print(calculator(2,3,'div'))
print 안에 들어간 부분을 주목한다. 함수가 아무리 정의 되었다 한들, 놔두면 아무 작업도 하지 않게 된다. 맨 밑의 print 문 4개를 지우면 아무것도 출력하지 않음을 알 수 있다. 따라서 print 함수 안에서 내가 정의한 함수를 호출(Call) 해주어야 한다. 함수를 호출할 때는 함수가 정의된 대로 함수 인자를 넣어 주어야 한다. 개수가 틀리면 Error 가 나게 된다. 위 코드에 대한 결과는 아래와 같다.
'python' 카테고리의 다른 글
[Python] 기본적인 사전 사용법 (0) | 2020.04.01 |
---|---|
[Python] list 다루기 (0) | 2020.03.30 |
[Python] 반복문(for, while) (0) | 2020.03.20 |
[Python] 조건문 사용하기 (0) | 2020.03.18 |
[Python] 사용자 상호작용 ( print, input ) (0) | 2020.03.16 |