python递归函数1到n的平方和_python中的高阶函数与递归函数

高阶函数

一个函数作为另一个函数的参数传入;函数名可以作为返回值;这样的函数即为高阶函数。

例如:求两个数的平方和

def f(m):

return m*m

def f1(a,b,function):

rets=function(a)+function(b)

return rets

print(f1(1,3,f))

# 函数f1被称为高阶函数。

递归函数

函数调用自己,这种函数成为递归函数。但凡递归函数做的事,循环函数都可以完成。

必须有一个明确的结束条件;

每次进入更深一层递归时,需要递归的的次数都应该相应减少;

递归效率不高,递归层次过多会导致栈溢出;

例1:如下计算阶乘的函数

递归函数:

def func(n):

if n==1:

return 1

return n*func(n-1)

func(5)

for循环:

def func(x):

x=x+1

sum=1

for i in range(x)[1:]:

sum*=i

return sum

func(5)

例2:利用递归函数求斐波那契数列的第n位数字:

def fibo(n):

if 1 < n <= 3:

return 1

elif n==1:

return 0

elif n<=0:

return "please input an int greater than 0."

return fibo(n-1)+fibo(n-2)

print(fibo(8)) # 返回13 效率非常低,当n大于30时,明显都能看出来

# 下面是利用for循环实现斐波那契数列求值:

def fib(n):

a = 0

b = 1

if n >= 3:

for i in range(n+1)[3:]:

a,b=b,a+b

result = b

return result

elif n == 1:

return a

elif n ==0:

return b

else:

return "please input an int greater than 0."

print(fibo(8)) # 返回13 效率高

内置函数

python递归函数1到n的平方和_python中的高阶函数与递归函数_第1张图片

你可能感兴趣的:(python递归函数1到n的平方和_python中的高阶函数与递归函数)