Невозможно понять этот рекурсивный код Python Turtle
я впервые задаю вопрос, надеюсь, некоторые из вас найдут время ответить.
Поэтому моя цель - написать скрипт на python с использованием модуля turtle для кодирования дерева пифагора.
Я потратил на это дни, и я действительно не мог продвинуться дальше определенного уровня, поэтому я посмотрел в Интернете, чтобы помочь мне. Я нашел код, который делает то, что я хочу, но с очень маленькими строками кода:
import turtle
t = turtle.Pen()
LIMIT =11
SCALAR = 0.5 * (2 ** 0.5)
def drawTree(size, depth):
drawSquare(size)
if depth + 1 <= LIMIT:
t.left(90)
t.forward(size)
t.right(45)
drawTree(size * SCALAR, depth + 1)
t.forward(size * SCALAR)
t.right(90)
drawTree(size * SCALAR, depth + 1)
t.left(90)
t.backward(size * SCALAR)
t.left(45)
t.backward(size)
t.right(90)
def drawSquare(sideLength):
for i in range(4):
t.forward(sideLength)
t.left(90)
t.up(); t.goto(-100, -200); t.down()
drawTree(170.0, 0)
Итак, я понимаю большую часть кода, кроме второго и третьего абзаца «если»: почему они когда-либо исполняются? Если функция продолжает повторяться, она никогда не достигает этой точки нормально! Я уверен, что мне здесь чего-то не хватает, и надеюсь, вы все поняли мой вопрос :) Еще раз спасибо!