파이썬의 함수(function)도 비슷합니다. 들어온 값, 즉 입력값(x)에 따라 결과, 즉 출력값(y)이 달라지는 어떤 동작(f(x))을 수행합니다. 파이썬에서는 함수의 입력값을 전달값이라고 하고, 출력값을 반환값이라고 합니다. 파이썬 함수는 전달값, 반환값에 동작까지 포함해 3가지 요소로 이뤄집니다.
앞의 그림을 파이썬 함수와 비교하면 전달값은 5, 동작은 □ + 20, ?는 반환값입니다. 반환값은 결국 25겠죠. 만약 전달값이 10으로 바뀐다면 반환값은 10 + 20을 해서 30이 됩니다.
사실 함수는 앞에서 이미 많이 다뤄 봤습니다. print(), len(), input() 등이 모두 함수입니다. 이들은 파이썬에서 특정 기능을 하도록 미리 만들어 둔 함수로, 파이썬에 포함돼 있다는 의미로 내장 함수라고 합니다. 그러나 파이썬에 모든 기능이 미리 만들어져 있지는 않습니다. 그래서 개발자가 파이썬으로 직접 코드를 작성해 함수를 만들 수 있습니다. 이를 사용자 정의 함수라고 하며, 만드는 형식은 다음과 같습니다.
형식
def 함수명():
실행할 문장1
실행할 문장2
...
가장 먼저 함수를 나타내는 def라는 키워드가 오고 한 칸 띄운 후 함수명을 적습니다. 함수명은 소문자로 작성하는데, 언더바(_)도 사용할 수 있습니다. 그리고 함수명 뒤에는 소괄호(())와 콜론(:)을 붙입니다. 다음 줄에는 함수가 어떤 동작을 하는지 작성합니다. 이 부분은 함수 본문이라고 합니다. 함수 본문은 함수에 속한다는 표시로 들여쓰기합니다. 들여쓰기는 4칸을 권장합니다. 이와 같은 형식으로 함수를 만드는 것을 함수 정의라고 합니다.