Рекурсия с модулем черепахи Python (книга по Python)Python

Программы на Python
Ответить
Anonymous
 Рекурсия с модулем черепахи Python (книга по Python)

Сообщение Anonymous »

Я изучаю решение проблем с помощью алгоритмов и структур данных с использованием Python и немного запутался в части рекурсии. Код следующий:

Код: Выделить всё

def tree(branchLen,t):
if branchLen > 5:
t.forward(branchLen)
t.right(20)
tree(branchLen-15,t)
t.left(40)
tree(branchLen-15,t)
t.right(20)
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()
Я понимаю идею рекурсии, но мне сложно представить ее в этой конкретной задаче. Когда эта программа выполняется и вызывается Tree(75,t), она должна выполняться в следующих шагах:
  • branchLen > 5, следовательно, выполняется строка 3
  • t.forward(75)
  • t.right(20)
  • tree(75-15,t) Вот здесь и возникает мое замешательство, затем это возвращается и выполняет строки 2-3 снова и снова, пока веткаLen < 5? Таким образом, шаги будут
  • t.forward(60)
  • t.right(20)
  • tree(60-15,t)
  • t.forward(45) и так далее до тех пор, пока BranchLen < 5, которая затем выполнит строку 6? Я правильно это понимаю или нет? Будем очень признательны за любую помощь!


Подробнее здесь: https://stackoverflow.com/questions/691 ... honds-book
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»