灵虚御风
醉饮千觞不知愁,忘川来生空余恨!

导航

 
""""""
"""
# 函数的递归
# 函数在调用阶段直接或间接的又调用自身

"""

"""补充"""

"""递归的深度 接近1000"""
# import sys
# print(sys.getrecursionlimit())
# 不是很精确
# sys.setrecursionlimit(2000)
# print(sys.setrecursionlimit(2000))

def func(n):
print('from func',n)
func(n+1)

# func(1)
# 函数的递归
# 函数在调用阶段直接或间接的又调用自身


def index():
print('from index')
login()

def login():
print('from login')
index()

# login()

# 函数不应该无限的递归下去

"""递归"""
"""
递归分两个阶段
1.回溯: 就是一次次重复的过程,这个重复的过程必须建立在每一次重复问题复杂度都应该下降

直到有一个最终结束条件
2.递推:一次次往回推导的过程

"""
"""
age(5) = age(4) + 2
age(4) = age(3) + 2
age(3) = age(2) + 2
age(2) = age(1) + 2
age(1) = 18

age(n) = age(n-1) + 2 # n > 1
age(1) = 18 # n = 1
"""



# 递归函数
def age(n):
if n == 1:
return 18
return age(n-1) + 2

res = age(5)
print(res) # 26

l = [1,[2,[3,[4,[5,[6,[7,[8,[9,[10,[11,[12,[13,]]]]]]]]]]]]]
# 将列表中的数字依次打印出来(循环的层数是你必须要考虑的点)
# for i in l: 推导思路
# if type(i) is int:
# print(i)
# else:
# for item in i:
# if type(item) is int:
# print(item)
# else:
# for j in item:
# if type(item) is int:
# print(item)
# else:

# def index():
# # pass # 第一种顶替方式(推荐使用pass)
# # ... # 第二种顶替方式
# index()

def get_num(l):

for i in l:
if type(i) is int:
print(i)
l1.append(i)
else:
get_num(i)

return l1
l1 = []
get_num(l)

print(get_num(l)) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
# l1 = []
# for i in l1:
# print(i)
# 递归函数不要考虑循环的次数 只需要把握结束的条件即可
posted on 2022-03-24 15:05  没有如果,只看将来  阅读(25)  评论(0编辑  收藏  举报