더북(TheBook)

5.8 재귀

함수에서 다른 함수를 호출할 수 있다. 마찬가지로 함수가 자기 자신도 호출할 수 있다. 자기 자신을 호출한다는 게 왜 좋은 것인지 당장 알지는 못하더라도 이게 프로그램이 할 수 있는 가장 마법에 가까운 것이라고 할 수 있다. 예를 들어 다음과 같은 함수가 있다.

def countdown(n):

if n <= 0:

print('Blastoff!')

else:

print(n)

countdown(n-1)

n0 또는 음수라면 단어 Blastoff!(발사!)를 출력하고, 그렇지 않으면 n을 출력하고 n-1을 인수로 전달하면서 다시 countdown 함수, 즉 자기 자신을 호출한다.

이 함수를 다음과 같이 호출하면 무슨 일이 일어날까?

>>> countdown(3)

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.