如题,我在编程时遇到了需要用递归函数的地方,但是对递归函数的运行机理不是十分清楚,现在举一个简单的例子来说明我遇到的疑问:
上述代码定义了一个函数exper,在参数值分别为10,3时,结果如下:
这不难理解,而且说明7,4,1,-2是按照产生的先后顺序反向排列的,亦即先产生的在上面。若将代码改成:
还是选择同样的参数值,那么结果是:
我想弄明白的是,当aa第一次的取值为7时,满足if的条件,此时应该进行下一次的exper循环,这个时候会不会执行“print(aa)"?若是执行的话,那么第一次的aa输出值为7,按照更改前的理解,从上到下应该是”7,4,1,-2“才对。若是不执行,那么应该只有最后一次迭代的结果-2作为输出值。