Bunny Code
[Python] - 15) 리턴(return), 재귀 함수 본문
이번 포스팅에서는 return 이라는 키워드에 대해 다뤄보겠습니다.
return 이 의미하는 바는
'함수를 실행했던 위치로 돌아가라', '함수를 여기서 끝내라' 라는 뜻입니다.
(매개변수 포스팅 부터 갑자기 어려워지는 듯한 느낌이 심한데 저도 어려워서 이해하느라 힘들었어요..ㅠㅠ)
위의 입력 화면을 보시면 return 이라는 키워드가 아래의 print("버즈밴드는 못생겼어") 의 출력을 막아줍니다.
print("버즈밴드는 멋있어") 까지만 출력해주고 함수를 끝내줍니다.
만약 return 뒤에 자료를 입력하면, 자료를 가지고 return 하게 됩니다.
return 뒤에 써 준 100000 라는 숫자를 가지고 return 한 것을 확인할 수 있습니다.
일반적으로 함수를 만들 때 값을 만들어 리턴하는 형태로 많이 만듭니다.
예제를 통해 이해하는 것이 더 쉬운데, 범위 내의 모든 정수를 모두 더하는 함수를 return과 for 반복문을 이용해 만들어볼게요.
위의 코드 입력 화면을 보면 output 을 가지고 함수의 초기 실행 위치로 되돌아가 다음 정수를 더해주게 만드는
return 의 위력을 볼 수 있습니다!!
저번 포스팅에서 배운 기본 매개변수를 활용한다면, 함수를 조금 더 편리하게 사용할 수 있게됩니다.
이를 활용하면, 팩토리얼 함수도 만들 수 있습니다. += 를 *= 으로 바꿔주고 range 의 시작 범위를 1로 정해주면 됩니다!
그런데 팩토리얼 함수를 만들 때, 위의 코드와 다르게 반복문을 사용하지 않고 만들 수 있는데 ,
바로 재귀 함수('자기 자신을 호출하는 것')를 이용하는 것입니다.
수학에서의 수학적 귀납법과 약간 비슷하다고 느꼈어요!! (n=1 에서 2,3,4. ... 하나씩 차례차례 올라가는 모습이??)
신기하지 않나요?
근데 재귀함수에는 문제점이 있습니다.
예를 들어, 100 factorial 을 재귀함수의 형태로 구한다고 하면 1! 부터 2!, 3!, ..., 100! 까지 모두 구해야하는데
반복문으로 100 factorial 을 구하는 것보다 계산을 더 많이 반복해야 가능해 보입니다.
이렇듯, 재귀 함수는 상황에 따라서 같은 것을 기하급수적으로 많이 반복한다는 문제가 있는데,
이에 대한 것과 이를 해결하는 기술에 대해서는 다음 포스팅에서 다뤄보겠습니다!
'Hello Coding 파이썬' 을 참고하여 작성하였음.
'Python Basic' 카테고리의 다른 글
[Python] - 17) 튜플 (Tuple) (0) | 2020.08.18 |
---|---|
[Python] - 16) 메모화 (0) | 2020.08.17 |
[Python] - 14) def 로 함수 선언하기 (0) | 2020.08.14 |
[Python] - 13) join(), reversed(), enumerate(), items() (0) | 2020.08.10 |
[Python] - 12) while 반복문, break, continue (0) | 2020.08.09 |