Python Jumpstart by Building 10 Apps Transcripts
Chapter: App 8: File Searcher App
Lecture: Core concept: Recursion
Login or
purchase this course
to watch this video and the rest of the course contents.
0:01
Here is a mathematical computation that is defined iteratively and that makes it very natural to define it as a recursive function,
0:09
the factorial of number n is just n times the factorial of the smaller number until you get down to a pre defined number that has a factorial known
0:19
and where the factorial of 1 is defined to be 1. We are taking this function factorial and we are calling it again
0:25
within itself with slightly different parameters and we need to make sure that there is somewhere along the way
0:32
some kind of test where we no longer call the function recursively so that is kind of like our if we are if we are remodeling this as a loop
0:39
this is how we would like break out out of the loop, but in recursion, we just return from the function without doing more of recursion,
0:46
let's look at this visually. Here we are going to take factorial of 3, that's going to return 3 times whatever the factorial of 2 is,
0:54
and when we call factorial of 2 we actually are back in the same function but now entirely different data
0:59
so now we are going to say well factorial of 2 is going to be defined to be 2 times factorial of 1 when I pass one down but remember,
1:06
the factorial of 1 is just 1 and as we work our way back we pass 1 up we do 2 * 1 and that's 2 and we pass the 2 back
1:14
and we say 3 * 2 and that is 6 which gives us our answer. This is one of the core concepts of computer science and computer programming,
1:21
it's not used super often but when it is used it so perfectly aligns with the types of problems you are solving,
1:29
if you are dealing with hierarchical data structures or you are dealing with these iteratively defined algorithms, recursion may be what you need.