用户:
ᝰ乙酰基水杨酸查看:58 回复:4 评论:17 创建时间:2020-02-20T13:42:48
这什么意思?
def function1(n):
if (n == 0):
return 1
else:
return (n * function1(n - 1))
def function1(n):#定义一个函数,它有一个参数,叫做n
if (n == 0):#如果这个参数:n等于0,那么
return 1#返回1
else:#否则
#下面再次调用了本函数
return (n * function1(n - 1))#返回参数n×(function1(n-1)的返回值)点赞0
评论
你是没见过无视递归深度的引用回环……
???
2个函数,一个引用another,another引用之前的那个,无限回环
有几率喵过递归深度,可能崩溃
哈哈哈哈哈是的……
你看我的图片
如果这样编写:
print(function1(0))
=>1
如果这样编写:
print(function1(3))
=>
分解之后,程序是这样执行的:
1.(n*function1(n-1))
↓ ↓
3 2
2.(n*function1(n-1))
↓ ↓
2 1
3.(n*function1(n-1))
↓ ↓
1 0
4.function1(0)
然后,反过来:
1.function(0)=1
2.n(1)*1=1
3.n(2)*1=2
4.n(3)*2=6
5.return 6
所以,
=>6
如果这样编写:
print(function1(-1))#这里是负数,程序将无休止地执行下去
由于这里是负数,它(函数)会一直去执行,所以:
=>RecursionError: maximum recursion depth exceeded while calling a Python object
什么意思呢?就是说程序已经很累了,执行不了了,就像10÷3一样
专业点,就是程序已经达到了Python的最大递归深度。
就是这样的啦,已经很详细咯~
点赞0
评论
TimeLinkForever点赞0
评论
呼呼呼呼哈哈哈哈哈
这个可以添加到昨天我们炒了一波的帖子那里
哈哈哈
我估计bcm有%20的人不知道函数可以当参数输入
我们知道……(呵呵呵)
哈哈哈
哈哈哈哈哈哈哈哈哈哈哈……
还有三重函数回环
哦对!
如果我们愿意,100重也可以