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 效率高

内置函数

python3%E4%B8%AD%E5%86%85%E7%BD%AE%E5%87%BD%E6%95%B0.png376454284437dd198ad0e4535b38f220.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值