猫史档案馆


麻烦帮我一个忙

用户:ᝰ乙酰基水杨酸ᝰ乙酰基水杨酸查看:17 回复:4 评论:17 创建时间:2020-02-20T13:42:48


这什么意思?
def function1(n):

    if (n == 0):
        return 1
    else:
        return (n * function1(n - 1))


回复

上一页1 页 / 共 1下一页
wrmdcxywrmdcxy

def function1(n):#定义一个函数,它有一个参数,叫做n
    if (n == 0):#如果这个参数:n等于0,那么
        return 1#返回1
    else:#否则
        #下面再次调用了本函数
        return (n * function1(n - 1))#返回参数n×(function1(n-1)的返回值)

点赞0


评论


wrmdcxywrmdcxy

如果这样编写:

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


评论


SXD_今夕何夕SXD_今夕何夕

c++

点赞0


评论


TimeLinkForeverTimeLinkForever

center_image

点赞0


评论