绕啊绕的递归函数
递归函数:
-
函数或其他的代码都可以解决递归解决的问题,但是递归在某些时候能有出奇制胜的效果
-
自己调用自己
def func(n): print('in func') n += 1 print(n) func(n) func(0) # 官网规定:默认递归的最大深度是1000次 # 如果递归超过100次还没有解决这个问题,那么执意使用递归,效率很低. # import sys # sys.setrecursionlimit(10000000) # 设定递归最大次数
# 例一 def age(n): if n == 1: return 18 else: return age(n - 1) + 2 print(age(4)) ''' n = 4 age(3) + 2 n = 3 age(2) + 2 n = 2 age(1) + 2 n = 1 18 ''' # 例二 l1 = [1, 3, 5, ['小马', '小刘', 18, [33, 44, [55, 77]]], [99, 22, 11, 9], 21] def func(lst): for el in lst: if type(el) != list: print(el) else: func(el) func(l1)