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

有两个的问题不明白

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(8, 'A', 'B', 'C')

为什么第五行和第七行后面没有了冒号?

还有就是第六行跟第七行换换可以不 或者说时第七行后边在加一个第八行  print a,'-->',c  这样行么?

还有一个最后一行 为什么换用了‘A',‘B','C'    


正在回答

1 回答

1. 第五和第七行 是在调用函数,而不是定义函数,所以没有冒号


2. 不能换,也不能加


3. 函数定义完了, 调用的时候可以传任何参数, 你甚至可以:

move(8,'r','g','b')


4. 如果实在不明白 递归  , 不明白汉诺塔, 也不明白 函数的参数 等等这些知识,建议 搜索更多专门的文章,仔细学习。

     Python 的 递归调用有深度限制问题, 但是递归思想还是很有用处的。 

     汉诺塔跟八皇后 都是经典的递归案例, 建议都看看。

     Python函数的参数 也有许多用法,值得深入学习。

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

EN龙 提问者

谢谢 大神啊
2016-04-18 回复 有任何疑惑可以回复我~
#2

清波 回复 EN龙 提问者

虽然我特别有冲动 细细写写 递归的汉诺塔。。。 但是想想,写起来难免过千字, 另外递归思想更加重要,汉诺塔 八皇后之类的 只是一个使用递归的 渠道, 还是算了。
2016-04-18 回复 有任何疑惑可以回复我~
#3

111111111111111Q 回复 清波

感谢建议!!!
2016-06-16 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

有两个的问题不明白

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