关于#python#的问题,请各位专家解答!

img


问一下,为什么我输入的是3,但执行的却是if,而不是else?

建议你用调试模式,这样更容易理解

img

3 进入 else (1)
递归进入 2 a c b (2)
2 进入 else (2)
递归进入 1 a b c (3)
1 进入 if (3)
输出 a - > c
返回到(2)
输出 x y c,即 a c b(注,这里输出的 x y z 是进入2层递归的参数值)

他是递归,有多次调用
if 那个是最里层的调用

if 和 else 都走了, 你的函数里面存在递归逻辑,要一层一层的返回的
递归的结束条件 就是 n==1,类似于栈的原理,按照 先进后出的原则, n==1 的最先打印