递归:调用函数本身

递归的最大深度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))

 

posted on 2019-06-20 19:24  wzc27229  阅读(102)  评论(0编辑  收藏  举报