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

这里有一点不懂

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

    if n ==1:

        print a, '-->', c

        return

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

    print a, '-->', c

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

move(4, 'A', 'B', 'C')

上面中 如果是拿n=2,会执行move(n-1, a, c, b),但相当于move(2-1, a, c, b),那就会 print a, '-->', c  也就是A-->B 然后return 但为什么还会往下执行这两段?

 print a, '-->', c

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

 不是执行了

 if n ==1:

        print a, '-->', c

        return

之后 return了么?为什么还会往下执行?

正在回答

2 回答

这个return是跳出当前函数体。比如:

def fun()

def fun1()

fun(){

print 1

fun1(){

print 2

return #1

}

print 3

return #2

}结果是

1

2

3

1号return跳出fun1()

2号return跳出fun()

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

慕用0051444 提问者

感谢,我遗忘这一个知识点了。还有一个疑问 为什么不用else的?
2019-07-26 回复 有任何疑惑可以回复我~
#2

厌久 回复 慕用0051444 提问者

用也可以,不用也可以,只要判断n==1这个条件就行了,不会影响下面代码的运行
2019-08-07 回复 有任何疑惑可以回复我~

感谢,我遗忘这一个知识点了。还有一个疑问 为什么不用else的?

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

举报

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

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

进入课程

这里有一点不懂

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