알고리즘을 공부하는 과정에서 기존에 알던 방법과는 다른 방법으로 함수를 정의하는 것을 보고 한 번 정리해보았다.
반복되는 코드는 다음과 같이 함수로 정의 가능하다.
def 함수명(인수 목록):
본체
정의한 함수를 호출하는 방법은 다음과 같다.
함수명(인수목록)
실제 사용 예시는
def calcsum(n):
total = 0
for num in range(n+1):
total += num
print(calcsum(4))
다음과 같은 방법으로도 함수 정의가 가능하다.
from typing import Any, Sequence
def max_of(a: Sequence) -> Any:
max = a[0]
for i in range(1, len(a)):
if a[i] > max:
max = a[i]
return max
from typing import Any, Sequence
: Any와 Sequence를 import한다. Any는 제약이 없는 임의의 자료형을 의미하며 Sequence는 시퀀스형 자료형(리스트, 튜플..)을 의미한다.
def max_of(a: Sequence) -> Any:
: max_of() 함수의 매개변수의 자료형은 시퀀스형이며, 반환하는 것은 임의의 자료형인 Any이다.
이 밖에 함수 내의 본체 부분을 정의하는 것과 이렇게 정의한 함수를 호출하여 사용하는 방법은 동일하다.