함수(Function)는 어떤 기능을 수행하기위한 코드의 단위이고, 코드중복을 제거하기 위한 목적으로 사용합니다.
파이썬에서 함수는 def 키워드를 사용하여 정의한다.
이 함수의 이름은 ‘say_hello’이고,
‘Hello, world!’라는 문자열을 출력하는 단순한 기능을 갖습니다.
함수가 수행할 코드의 블록은 한 칸 들여쓰기로 구분되어야 합니다.
정의한 함수를 사용하기 위해서는 아래와 같이 함수의 이름과 괄호 ()를 이용해서 호출합니다.
함수에서 사용할 매개변수 값을 다양한 방식으로 입력받을 수 있습니다.
이 함수는 입력받은 값을 출력합니다.
함수의 정의에서 사용한 text를 매개변수 또는 parameter라고 하고,
함수에 입력한 문자열 ‘Good morning!’을 함수의 인자 또는 argument라고 합니다.
(흔히 문서와 코드에서 관례적으로 arguments를 args로 줄여서 사용합니다.)
이 함수는 입력받은 두 숫자의 합 (a + b)을 출력합니다.
함수를 정의할 때 매개변수를 몇 개든지 사용할 수 있지만, 함수를 호출할 때 같은 개수의 인자들을 전달해야 합니다.
함수를 정의할 때 c = 10 과 같이 지정해주면,
세번째 매개변수 c의 기본값이 10으로 설정되어서 입력하지 않아도 됩니다.
매개변수의 기본값이 지정되어 있더라도, 세번째 인자로 20을 입력하면 새로운 값이 저장됩니다.
함수를 정의하는 시점에 입력 매개변수의 개수가 정해지지 않았을 때는 *args 와 같이 표시해주면, 입력 인자들을 튜플의 형태로 만들어줍니다.
args를 출력하면 (1, 2, 3) 또는 (1, 2, 3, 4, 5, 6, 7, 8, 9)와 같이 출력됩니다.
파이썬 키워드 return을 이용해서 함수의 반환값을 얻을 수 있습니다.
return_add_result 함수는 두 숫자를 합한 결과를 반환합니다.
아래와 같이 더 간단하게 작성할 수도 있습니다.
함수를 정의할 시점에 수행할 코드가 정해지지 않은 경우 pass 키워드만 입력해줄 수 있습니다.
아직 이 함수는 어떠한 기능도 수행하지 않습니다.
함수를 정의할 때, 아래 예제와 같이 입력 매개변수와 반환값이 없어도 됩니다.
또한 입력 파라미터만 있고 반환값이 없어도 되고, 입력 파라미터가 없고, 반환값만 있어도 됩니다.