【发布时间】:2015-05-27 23:30:05
【问题描述】:
import turtle
def tree(branchLen,t):
if branchLen > 5:
t.forward(branchLen)
t.right(40)
tree(branchLen-15,t)
t.left(80) #I don't get what happens after this.
tree(branchLen-15,t)
t.right(40)
t.backward(branchLen)
def main():
t = turtle.Turtle()
myWin = turtle.Screen()
t.left(90)
t.up()
t.backward(100)
t.down()
t.color("green")
tree(75,t)
myWin.exitonclick()
main()
我无法理解这个 python 程序中的递归。我知道它需要 branchLen,如果它大于 5,它会向前绘制(branchLen)然后将角度向右改变 40 度。然后再次调用函数,将 branchLen 减少 15 并再次调用,直到 branchLen 小于 5。
然后它将乌龟向左转 40 度并再次调用该函数 但是这次当它将 branchLen 减少 15 时,它现在不应该是负数吗? 所以现在函数不应该像它的那样工作如果条件是那个 branchLen > 5.?
【问题讨论】:
-
每个递归算法都有一个基本情况。
标签: python recursion turtle-graphics