当前位置:   article > 正文

函数调用、递归函数_python中def fun(n)是什么意思

python中def fun(n)是什么意思

1、函数调用

def fun():
	print(1)

print(fun)	#fun是函数名,打印fun就是打印函数对象的地址
print(fun())	#fun()是调用函数,打印fun()就是打印fun()的返回值
  • 1
  • 2
  • 3
  • 4
  • 5

结果:
在这里插入图片描述
2、递归函数
递归函数的两个条件:
(1)递归条件:将问题继续分解的条件;
(2)基线条件:问题可以被分解为最小的问题。

当满足基线条件的时候,再取解决问题(设定的最大递归深度)

例1:
自定义函数,求n的阶乘。

推到过程:
10!=109!
9!=9
8!

2!=2*1!
1!=1

所以:

def fun(n):
	#基线条件:
	if n==1:
		return 1
	#递归条件:
	return n*fun(n-1)
	
print(fun(10))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

结果:
在这里插入图片描述
例2:
自定义函数,求任意数的任意次幂运算。

推导过程:
n**m

10^5=10x104
10^4=10x10
3

10^2=10x10**1
10^1=10

所以:

def fun(m,n):
	#基线条件:
	if n==1:
		return m
	#递归条件:
	return m*fun(m,n-1)

print(fun(10,5))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

结果:
在这里插入图片描述
例3:
自定义函数,判断字符串是否是回文字符。

推导过程:
'abcdefghgfedcba’

‘bcdefghgfedcb’

‘h’

所以:

def fun(s):
	#基线条件:
	if len(s)<2:
		return True
	elif s[0]!=s[-1]:
		return False
	#递归条件:
	return fun(s[1:-1])

print(fun('abcdefghgfedcba'))

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

结果:
在这里插入图片描述
例4:猴子吃桃问题
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少桃子?

推导过程:
第10天 : 1
第9天: (1+1)*2
第8天: ((1+1)*2 + 1) *2

def monkey(n):  # n天前一共摘了多少桃子
    if n == 1:
        return 1
    return (monkey(n-1) + 1) * 2

num = monkey(10)
print(num)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

结果:
在这里插入图片描述

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/54693
推荐阅读
相关标签
  

闽ICP备14008679号