用户:
ᝰ乙酰基水杨酸查看:17 回复: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
评论
如果这样编写:
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
评论