为了账号安全,请及时绑定邮箱和手机立即绑定

为啥这个只输出a-->b

def move(n, a, b, c):

    if n == 1:

        print a,'-->',c

        return none

    else:

        move(n-1,a,c,b)

        move(1,a,b,c)

        move(n-1,b,a,c)

move(4, 'a', 'b', 'c')


正在回答

3 回答

去掉return none,一旦执行rerurn,程序立马停止。
因为无论如何递归,最底层的函数必定最先输出n==1时的情况,之后就return了,停止运行。

0 回复 有任何疑惑可以回复我~
#1

MortChavez 提问者

非常感谢!
2016-08-02 回复 有任何疑惑可以回复我~

个人感觉,因为n=4,开始else递归,赋值之后a=a b=c c=b 然后n==1的时候a-->c的时候就输出a-->b了 然后return,函数结束

0 回复 有任何疑惑可以回复我~

n=4时直接运行else else else 三次后n=1,这时候形参a,c,b对应实参a,b,c 所以输出a-->b一次后 returne none 结束了。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

为啥这个只输出a-->b

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信