递归:调用函数本身
递归的最大深度997,自我保护机制
import sys
sys.setrecursionlimit(n) #n为自己设置递归的深度参数
实例参考:
def age(n): if n==1: return 40 else: return age(n-1)+2 print(age(4))
----------------------------------------------------------------------------------
l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88] #查找66 -------------------------- #内置函数 def func(i): if i in l: print(l.index(i)) else: print("不存在") func(66) -------------------------- #for循环 num = 0 def func(j): for i in l: global num if i == j: print("存在") print(num) else: pass num += 1 func(66) ---------------------------
# def func(l,aim):
# mid_index = len(l) // 2
# if l:
#
# if l[mid_index] > aim:
# func(l[0:mid_index],aim)
# elif l[mid_index] < aim:
# func(l[mid_index+1:len(l)],aim)
# else:
# print("找到了%d--%d"%(aim,mid_index))
#
# else:
# print("找到了")
# func(l,66)
# 升级版
def func(l,aim,start = 0,end = len(l)):
mid_index = (end - start)//2+start
if l:
if l[mid_index] > aim:
func(l,aim,start,mid_index-1)
elif l[mid_index] < aim:
func(l,aim,mid_index+1,end)
else:
print("找到了%d--%d"%(aim,mid_index))
else:
print("找到了")
func(l,66)
斐波那契:
n = int(input("请输入任意值:")) -------------------------------------循环 s = [0,1] for i in range(n+1): s.append(s[i]+s[i+1]) s.pop() s.pop() print(s) print(s[i]) --------------------------------------递归 def func(i): if i == 1 or i==2: return 1 else: return func(i-1)+func(i-2) #递归就是结果向前推 print(func(n))
阶乘:
n = int(input("请输入任意值:")) --------------------------------------循环 s = [] l =1 for i in range(1,n+1): s.append(i) print(s) for j in range(len(s)): l *= s[j] print(l) ----------------------------------------递归 def func(n): if n==1: return 1 else: return n * func(n-1) print(func(12))