Отладка Turtle
Графика добавляет несколько новых способов ошибиться — разберём их по схеме «симптом → причина → исправление».
Графика добавляет несколько новых, специфичных для Turtle способов что-то сделать не так — разберём самые частые из них по схеме «симптом → причина → исправление».
| Симптом | Причина | Исправление |
|---|---|---|
| Окно открывается и сразу же закрывается | Программа закончилась, и Python закрыл окно вместе с ней | Добавьте screen.exitonclick() (ждёт клика) или turtle.done() в самом конце программы |
| Черепашка «смотрит не туда», хотя код кажется верным | Перепутаны left()/right(), или забыт один из поворотов в последовательности | Перечитайте программу построчно и для каждой команды спросите: «это движение или поворот?» |
| Часть рисунка не появляется на экране | Забыт pendown() после penup() — черепашка честно двигается, просто ничего не рисует | Проверьте, что перед каждым «настоящим» движением перо снова опущено |
| Фигура нарисовалась, но заливки нет | Забыт end_fill(), либо контур не замкнулся в точности там, где начался | Убедитесь, что путь между begin_fill() и end_fill() возвращается в стартовую точку |
| Часть рисунка «пропадает» за краем окна | Координаты вышли за пределы видимой области — окно не бесконечное | Проверьте screen.setup() и не выходите за половину ширины/высоты окна от центра |
TclError или окно вовсе не открывается на сервере/Linux без монитора | Turtle использует Tk — нативный GUI, которому нужен настоящий (или виртуальный) дисплей | Запускайте Turtle на компьютере с обычным рабочим столом; для автоматизации без монитора нужен виртуальный дисплей вроде Xvfb — это уже не начальный уровень |
| Практика Turtle не открывается прямо в браузере на этом сайте | Браузерная среда Python (Pyodide) не умеет открывать нативные Tk-окна — это техническое ограничение, а не ошибка в вашем коде | Такие практики отмечены «требуется локальный Python» — скачайте .ipynb и запустите его в VS Code, PyCharm или Jupyter на своём компьютере |
Предскажите, прежде чем запускать
Как и с числами в главе 5, лучшая привычка — предсказать курс и примерные координаты черепашки до запуска, а не после. Если предсказание разошлось с реальностью — вы либо нашли баг, либо неточно понимаете команды. Оба случая стоит разобрать.
Черепашка стоит на (0, 0), курс 0°. Выполнены команды: left(90), right(45). Каков итоговый курс? Проверьте себя, выполнив это в реальном окне Turtle.
В программе, рисующей квадрат, после третьего поворота получается пятиугольник, а не квадрат. Сколько раз в коде повторяется пара forward()/right(90)? Сколько должно быть?