Because a recursive function calls itself, it's easy to write a function incorrectly that ends up in an infinite loop.
For example, suppose you want to write a function that prints a countdown, like this: 3...2...1.
Write out that code and run it. You'll notice a problem: this function will fun forever: 3...2...1...0...-1...-2...
When you write a recursive function, you have to tell it when to stop recursing. That's why every recusive function has two parts: the base case, and the recursive case. The recursive case is when the function calls itself. The base case is when the function doesn't call itself again ... so it doesn't go into an infinite loop.
Let's add a base case to the countdown function:
def count_down(i):
print(i)
if i <= 0:
return
else:
count_down(i-1)
Now the function works as expected from i to 0.
网友评论