1.递归(效率比较低)
#4!
in1=1
for i in range(1,5):
in1*=i
print(in1)
#4递归
in2=1
def in_di(n):
if n==1:
return 1
in2=n*in_di(n-1)
print (in2)
print (n)
print ("______")
return in2
print (in_di(4))
斐波那契数列:
斐波那契数列指的是这样一个数列:
这个数列从第3项开始,每一项都等于前两项之和。
def fib(n):
if n==1 or n==2:
return 1
return fib(n-1)+fib(n-2)
print(fib(15))
#利用递归处理嵌套列表,生成[1,2,3,4,5,6,7,8,9,10,11,12]
'''
递归:
1.函数自己调用自己
2.一定要有结束递归调用的条件,一般来说就是if...return...
3.想清楚一次过程即可,所有过程都是一样的,只不过参数不同
4.一旦发生递归,当前函数的执行会被暂停,递归调用return值
'''
l=[1,2,3,[4,5,[6,7,8,[9,10,[11,12]]]]]
a=[1,2,[3,4]]
result = []
def get_list_value(L):
global result
for i in L:
if not isinstance(i,list):
result.append(i)
else:
get_list_value(i)
return result
print(get_list_value(a))
result=[]
print(get_list_value(l))
#利用递归处理嵌套列表,生成[1,2,3,4,5,6,7,8,9,10,11,12]
'''
递归:
1.函数自己调用自己
2.一定要有结束递归调用的条件,一般来说就是if...return...
3.想清楚一次过程即可,所有过程都是一样的,只不过参数不同
4.一旦发生递归,当前函数的执行会被暂停,递归调用return值
'''
l=[1,2,3,[4,5,[6,7,8,[9,10,[11,12]]]]]
a=[1,2,[3,4]]
def get_list_value(L):
result = []
for i in L:
if not isinstance(i,list):
result.append(i)
else:
result.extend(get_list_value(i))
return result
print(get_list_value(a))
print(get_list_value(l))