Tu中绘制树的递归函数

2024-10-03 17:22:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用递归函数画一棵树。这是我最好的机会。我知道我离得很远,但在努力解决它时遇到了困难。任何帮助都将不胜感激!在

def svTree( trunkLength, levels ):
    """ uses the turtle drawing functions to return a tree with a specified number of levels
    input: two integers, trunkLength and levels
    """

    newtrunkLength = trunkLength *.5

    if levels ==1:
           penup()
    else:

        forward(trunkLength)       
        left(45)         
        svTree(trunkLength * 0.5,levels -1)      
        right(90)
        forward(trunkLength *.5)
        svTree(trunkLength * 0.5,levels -1)      
        left(45)          
        backward(trunkLength)

        forward(trunkLength)       
        right(45)
        svTree(trunkLength * 0.5,levels -1)
        left(90)
        svTree(trunkLength * 0.5,levels -1)
        right(45)
        backward(trunkLength)

        return  svTree(newtrunkLength,levels -1)   

这是我对它的新尝试:我认为它更接近于Y,但我认为我的递归步骤有缺陷。。。请帮忙!谢谢您!:)

^{pr2}$

Tags: therightreturndefleft机会forwardlevels
1条回答
网友
1楼 · 发布于 2024-10-03 17:22:18

复制粘贴是一个很好的迹象,你正在做错事。排除重复部分。在

最有可能的是,您不想在备份时绘图,所以在backward()之前调用penup()。在

另外,您希望所有子树都从同一点增长,因此需要在每次递归调用后返回。在

最后,您永远不会使用返回的值,那么return行中的递归调用尝试实现什么呢?在

相关问题 更多 >