在调用一个函数的过程中,直接或间接的调用函数本身。
def func():
print(‘from func‘)
间接调用:
def foo():
print(‘form foo‘)
bar()
def bar():
print(‘form foo‘)
foo()
递归都是有次数限制的。
问5个人年龄,第五个比第四个大2岁,以此类推,第一个18岁。
def age(n):
if n ==1:
return 18
return age(n-1)+2
print(age(5))
递归的执行分为两个过程:
递推和回溯。
循环取出列表中的所有元素:
l=[1,2[3,4[5,6[7,8[9,10]]]]]
def search(l):
for item in l:
if type(item) is list:
search(item)
else:
print(item)
search()
l=[1,2,5,7,10,31,44,47,56,99,102,130,240]
def binary_search(l,num):
print(l)
if len(l) > 1:
mid_index=len(l)//2
if num > l[mid_index]:
l=l[mid_index:]
binary_search(l,num)
elif num < [mid_index]:
l=l[:mid_index]
binary_search(l,num)
else:
print(‘find it‘)
else:
if l[0] == num:
print(‘find it ‘)
else:
print(‘not exist‘)
return
原文:http://www.cnblogs.com/sexiaoshuai/p/7277318.html