递归最显著的特征为函数会在函数内部继续调用自己。
递归的效率不高,因为每层递归在等待值时会开辟内存,容易造成内存溢出。
递归结构的两个要求:
1.递归必须有终止条件。
2.每进入一层递归,问题的规模要比上一层少。
所有用递归解决的问题,for循环都可以解决。
几个例子
def test(n):
print("这层开始时n=%.d" % n)
n = int(n / 2)
if n == 0:
return "结束"
res = test(n)
return res
A = test(10)
print(A)
person_list = ["LL", "YY", "Lucky", "BB", "MB"]
def askrode(person_list):
person = person_list.pop(0)
if len(person_list) == 0:
if person == "MB":
return "我知道地方,在太原"
else:
return "没人知道路"
print("%s说我去给你问问%s" % (person, person_list))
res = askrode(person_list)
return res
result = askrode(person_list)
print(result)