关于递归内部调用与内部调用递归程序语句的执行情况

程序示例:def draw(length):
    if length > 5:
        turtle.forward(length)
        print('向前 ', length)
        turtle.right(25)
        print('右转 25')
        draw(length - 15)     ##
        turtle.left(40)
        print('左转 40')
        draw(length - 15)     ###
        turtle.right(20)
        print('右转 20')
        turtle.backwardlength)
        print('向后 ',length)
 
draw(50) #调用递归函数 
 
问题描述:
 第一遍顺序执行到此标“##”处进行递归调用,则从传入参数进行下一次递归,而此语句后的语句并未执行(是否意味着并未完成一次完整的递归函数调用,或者说只调用函数的一部分(此调用语句前的部分)
当##处递归参数到底后,继续此函数的第一遍顺序执行,程序继续往下进行下一句
(疑惑点在于,内部调用本身为递归算法,但是又并未完正的调用全部语句,也就意味着与外部调用不一样?)

Robin_TY - PhD@CSU,研究方向:计算机视觉,模式识别

赞同来自: cisco1234 fish

程序执行到##处,先进入递归的函数中运行,直到不符合条件,跳出递归的函数,才接着运行##后的代码。

要回复问题请先登录注册