1.基线条件和递归条件
每个递归函数都有两部分:基线条件(base case)和递归条件(recursive case)。 递归条件指的是函数调用自己,而基线条件值得是函数不再调用自己,从而避免形成无限循环
def countdown(i):
print(i)
if i <= 1:#基线条件
return
else:#递归条件
countdown(i-1)
countdown(6)
运行结果:
6
5
4
3
2
1
2.调用栈
def greet2(name):
print("how are you, " + name + "?")
def bye():
print("ok bye!")
def greet(name):
print("hello, " + name + "!")
greet2(name)
print("getting ready to say bye...")
bye()
greet("mary")
当调用greet2时,函数greet只执行了一部分。调用另一个函数时,当前函数暂停并处于未完成状态
运行结果:
hello, mary!
how are you, mary?
getting ready to say bye...
ok bye!