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

请问定义move()只输入了参数,为什么能将一步步指令输出出来呢?

可以理解通过三大步骤,实现转移。想问实现一个move(n-1,a,c,b),计算机是如何知道我要输出每一步的指令的?

正在回答

2 回答

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')

因为方法中有调用print打印啊,a和c都是一直在变的

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

最开始我纠结要指定首次是a-->b还是a-->c,后来看了答案发现根本不用

我的理解是在计算前,计算机并不知道是先a-->b还是a-->c。如果第一步选错了,最终失败或者会回到初始状态,也就是说,之前的步骤都没有意义;如果选对了,最终能达到目标。计算机是计算了所有可能,但是只给出了最优的步骤,略去了无效的步骤。不知道理解的对不对

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

举报

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

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

进入课程

请问定义move()只输入了参数,为什么能将一步步指令输出出来呢?

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