재귀호출
함수 나 자신 안에 나를 또 호출하는 방법.
그럼 또 함수가 돌아가고 또 그 함수가 돌아가고 무한 loop.
다행히 파이썬은 1000번까지 반복이 가능해서 멈추기는 하지만,
꼭 빠져나오는 코드를 작성해줘야 함.
언제쓸까?
어떤 연산을 한 그 값으로 또 같은 연산을 해야할 때가 있다.
그 때 사용하면 된다.
어떻게쓸까?
먼저 제일 마지막에 빠져나올때의 조건문부터 작성하고,
그 뒤에 변환식을 넣어주자.
n (차수) 의 변화가 어떻게 되는지를 잘 살필 것.
def hello(count):
if count == 0: # 종료 조건을 만듦. count가 0이면 다시 hello 함수를 호출하지 않고 끝냄
return
print('Hello, world!', count)
count -= 1 # count를 1 감소시킨 뒤
hello(count) # 다시 hello에 넣음
hello(5) # hello 함수 호출
실행 결과
Hello, world! 5
Hello, world! 4
Hello, world! 3
Hello, world! 2
Hello, world! 1
대표적인 예로 factorial 이 있음
수학시간에 배웠던 기억이 남... 다행이다
def factorial(n):
if n == 1: # n이 1일 때
return 1 # 1을 반환하고 재귀호출을 끝냄
return n * factorial(n - 1) # n과 factorial 함수에 n - 1을 넣어서 반환된 값을 곱함
print(factorial(5))
728x90
'Study (Data Science) > Python' 카테고리의 다른 글
게임 캐릭터 클래스 만들기 (0) | 2022.11.30 |
---|---|
막강한 클래스 (Class) (0) | 2022.11.30 |
Unit 29. 함수의 return (0) | 2022.11.29 |
참고) zip( ) 함수 (0) | 2022.11.29 |
Unit30. *args / **kwargs (가변인자; Variadic Parameters) (0) | 2022.11.29 |
댓글