递归的执行理解

来源:7-5 Python之递归函数

car

2016-02-13 16:16

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

写回答 关注

3回答

  • car
    2016-02-14 19:12:30

    那这个语言的return,和其他语言的return不一样,在方法中,其他语言是退出方法。 

  • airbagy
    2016-02-14 17:00:24

    rerturn 这个指令是“根据input”,“执行计算”,“返回一个output”。input是str,output也(可能)是str,这里就是这样。

  • airbagy
    2016-02-14 16:58:10
    #-*- coding:utf-8 -*-
    # move(n, a, b, c)表示的是有n个盘子在a柱子上,将要移到b柱子上面去
    def move(n, a, b, c):
    # 如果a柱子上面只有一个盘子,则直接移到c柱子上面去并输出路径,结束递归
        if n == 1:  
            print a, '-->', c
            return
    # 表示的是将n-1的盘子从a柱子上面移到b柱子上面去
        move(n-1, a, c, b)
    # 输出最下面个盘子移从a移到c的路径
        print a, '-->', c
    # 将b柱子上面的n-1个盘子移动到c柱子上面
        move(n-1, b, a, c)
    move(4, 'A', 'B', 'C')


初识Python

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

758449 学习 · 8667 问题

查看课程