해당 문서를 통해 파이썬의 함수
에 대해 알아봅시다.
프로그래밍에서 함수
의 개념은
'특정 목적을 이루거나 원하는 작업을 수행하도록 설계된 코드' 라고 할 수 있습니다.
여러분이 떠올리는 '입력값을 받아 여러 작업을 수행한 후 출력으로 내보내는 시스템'도 맞는 말입니다.
프로그래밍에서 말하는 함수는 이것의 코드버전
입니다.
그렇다면 함수는 어떤 도움을 줄 수 있을까요?
한번 작성한 함수는 호출
을 통해서 계속 사용할 수 있습니다. 이러한 특징으로부터 여러 좋은 효과가 발생하는데,
그 효과는 대표적으로 다음과 같습니다.
- 코드의 반복 최소화
- 코드 유지 보수가 쉬워짐
- 가독성 향상
글로만 보니 어떤 식으로 이러한 도움을 주는지 감이 잘 안 오실거라고 생각합니다.
밑에서 살펴보도록 하죠!
함수를 사용을 통해 불필요한 코드의 반복을 최소화 할 수 있습니다.
예를 들어 10번 인삿말을 출력하는 프로그램을 만든다고 합시다.
만약 여러분이 함수를 사용하지 않는다면, 함수를 모른다면 다음과 같이 코드를 작성할 것입니다.
print("안녕!")
print("안녕!")
print("안녕!")
print("안녕!")
print("안녕!")
print("안녕!")
print("안녕!")
print("안녕!")
print("안녕!")
print("안녕!")
생각만 해도 끔찍하죠?
똑같은 코드를 원하는 수만큼 반복해서 적는 비생산적인 일을 해야합니다.
하지만 여러분이 함수를 쓴다면 똑같은 코드를 여러 번 적을 필요도 없고, 인사의 횟수도 임의로 정할 수 있습니다!
다음과 같이 말이죠.
#함수를 정의
def SayHi(x):
for i in range(x):
print("안녕!")
#함수를 이용해 10번 인사
SayHi(10)
#함수를 이용해 20번 인사
SayHi(20)
함수를 사용하면 코드의 유지와 보수가 쉬워집니다.
앞서 든 예시를 그대로 사용하겠습니다. 아까는 안녕! 이라는 인사를 반복하도록 코드를 작성하였습니다.
만약 여러분이 마음이 바뀌어서 잘 가! 라는 인사를 출력하고 싶다고 가정해봅시다.
함수를 사용하지 않은 경우 여러분은 print("안녕!")
이라 적힌 부분을 일일이 찾아서
print("잘 가!")
로 변경해야 할 것입니다.
하지만 함수를 써서 구현했을 경우, 밑의 코드처럼 함수를 정의한 부분에서 살짝 손보면 됩니다.
def SayHi(x):
for i in range(x):
print("잘 가!") #인삿말 변경
#함수를 이용해 10번 인사
SayHi(10)
#함수를 이용해 20번 인사
SayHi(20)
이처럼 코드를 간단히 유지하고 보수할 수 있게됩니다.
앞서 말한 인사를 10번 출력한 코드는 굉장히 간단한 코드입니다. 아마 함수를 사용하지 않은 코드를 봐도 지저분하긴 하지만,
대다수의 사람들은 해당 코드를 봤을 때 어떤 역할을 수해하는지 쉽게 알 수 있을 것입니다.
근데 만약 여러분의 프로젝트가 굉장히 복잡하다면?
거기다 수천줄이나 된다면?
함수를 사용하지 않고도 만인이 쉽게 이해할 수 있는 코드를 작성할 수 있을까요?
함수를 사용하지 않았다면 아마 여러분을 제외한 그 누구도 쉽게 이해하지 못할 것입니다. 아니,
코드를 작성했던 여러분 또한 알아볼 수 없을지도 모릅니다.
함수의 적절한 사용을 통해 우리는 사람들이 소스코드를 보고 코드가 의도하는 동작이나 알고리즘을
쉽게 이해할 수 있도록 만들 수 있습니다.
즉, 가독성
을 높일 수 있습니다.
좋은 코드는 자고로 쉽게 읽고 이해할 수 있는 코드입니다.
남들이 여러분의 코드를 최소한의 노력과 시간을 투자하여 이해할 수 있어야 좋은 코드라고 할 수 있습니다.
이를 위해선 함수의 사용은 반드시 필요할 것입니다.
이제 함수의 효과에 대해 알아봤으니 마지막으로 함수가 어떻게 생겼는지, 어떻게 작성하고 사용해야 하는지 알아봅시다.
함수는 다음과 같은 형태를 가지고 있습니다.
def name_of_function(input_parameter):#name_of_function에 함수의 이름 기재, 필요에 따라 인자를 전달
#실행할 내용
a = input_parameter
return a #필요에 따라 값을 반환
def
를 통해 여러분의 함수를 작성할 수 있습니다.
name_of_function
부분에 함수 이름을, 필요에 따라 input_parameter
부분을 통해 인자를 전달할 수 도 있습니다.
이후 실행할 내용 부분을 여러분이 원하는 대로 작성하면 됩니다.
값을 반환할 필요가 있는 경우 return
명령어를 사용합니다.
사용할 때에는 다음과 같이 사용할 함수의 이름과 전달할 인자만 써주면 됩니다.
위에서 작성한 함수를 예로 들면,
num = name_of_function(4)
print(num)
본 함수는 인자를 입력받아 그대로 반환하는 함수이므로,
4를 인자로 전달하고 그대로 반환하게 됩니다. 이를 num
이란 변수에 저장하고 print()
함수를 이용해 출력해봤습니다.
물론 전달한 인자나 반환값이 없는 경우도 존재합니다.
앞서 작성했던 인사를 하는 코드가 반환값이 없는 경우에 해당합니다. 아무 값도 반환하지 않고 단지 인삿말을 출력했습니다.
이로써 함수에 대한 설명을 마치도록 하겠습니다.
본 문서는 입문자를 위한 문서로 함수에 대한 자세한 설명은 하지 않았습니다.
더 궁금하신 점이 있다면 검색해보시길 추천드립니다.