Простое рисование с помощью черепашки

Введение

Черепашка похожа на доску для рисования.

У неё есть функции в стиле turtle.forward(...) и turtle.left(...), с помощью которых черепашка может двигаться.

Перед тем как начать работу с черепашкой, необходимо импортировать соответствующий модуль. Мы рекомендуем экспериментировать с ней в интерактивной оболочке (для начала), т.к. при использовании файлов придётся заниматься дополнительной утомительной работой. Перейди в терминал и введи:

import turtle
_images/default.png

Примечание

Not seeing anything on Mac OS? Try issuing a command like turtle.forward(0) and looking if a new window opened behind your command line.

Примечание

Используешь Ubuntu и получаешь сообщение об ошибке “No module named _tkinter”? Установи отсутствующий необходимый пакет: sudo apt-get install python3-tk

Примечание

While it might be tempting to just copy and paste what’s written on this page into your terminal, we encourage you to type out each command. Typing gets the syntax under your fingers (building that muscle memory!) and can even help avoid strange syntax errors.

turtle.forward(25)
_images/forward.png
turtle.left(30)
_images/left.png

Функция turtle.forward(...) заставляет черепашку двигаться вперёд на указанное расстояние. turtle.left(...) приказывает черепашке повернуться влево на указанную градусную меру угла. А turtle.backward(...) и turtle.right(...) действуют анлогично — первая заставляет черепашку двигаться назад, а вторая — поворачиваться вправо.

Примечание

Если ты хочешь начать заново, введи turtle.reset(), чтобы стереть рисунок. Мы рассмотрим turtle.reset() подробнее немного позже.

Стандартная “черепашка” – всего лишь треугольник. Это не интересно! Придадим ей нормальный вид командой turtle.shape():

turtle.shape("turtle")

Так намного лучше!

If you put the commands into a file, you might have recognized that the turtle window vanishes after the turtle finished its movement. (That is because Python exits when your turtle has finished moving. Since the turtle window belongs to Python, it terminates as well.) To prevent that, just put turtle.exitonclick() at the bottom of your file. Now the window stays open until you click on it:

import turtle

turtle.shape("turtle")

turtle.forward(25)

turtle.exitonclick()

Примечание

Python — язык программирования, в котором крайне важны отступы в коде. Подробности мы узнаем позже, в главах про функции, но сейчас тебе просто необходимо запомнить, что лишний пробел или символ табуляции перед строкой может вызвать ошибку.

Рисуем квадрат

Примечание

You’re not always expected to know the anwer immediately. Learn by trial and error! Experiment, see what python does when you tell it different things, what gives beautiful (although sometimes unexpected) results and what gives errors. If you want to keep playing with something you learned that creates interesting results, that’s OK too. Don’t hesitate to try and fail and learn from it!

Упражнение

Нарисуй квадрат, как на рисунке ниже:

_images/square.png

Для квадрата тебе понадобится прямоугольный, т.е. 90-градусный, угол.

Решение

turtle.forward(50)
turtle.left(90)
turtle.forward(50)
turtle.left(90)
turtle.forward(50)
turtle.left(90)
turtle.forward(50)
turtle.left(90)

Примечание

Notice how the turtle starts and finishes in the same place and facing the same direction, before and after drawing the square. This is a useful convention to follow, it makes it easier to draw multiple shapes later on.

Дополнительно

If you want to get creative, you can modify your shape with the turtle.width(...) and turtle.color(...) functions. How do you use these functions? Before you can use a function you need to know its signature (for example the number of parameters and what they mean.) To find this out you can type help(turtle.color) into the Python shell. If there is a lot of text, Python will put the help text into a pager, which lets you page up and down. Press the q key to exit the pager.

Совет

Видишь такую ошибку:

NameError: name 'turtle' is not defined

когда пытаешься просмотреть справку? В Python необходимо импортировать имена, перед тем, как обращаться к ним, т.е. в нашем случае необходимо выполнить import turtle перед help(turtle.color).

Также найти информацию о функциях можно в онлайн-документации.

Осторожно

Если ты допустил ошибку, то ты можешь воспользоваться командой turtle.reset(), чтобы стереть рисунок, либо командой turtle.undo()., чтобы отменить последние действия.

Совет

As you might have read in the help, you can modify the color with turtle.color(colorstring). These include but are not limited to “red,” “green,” and “violet.” See the colours manual for an extensive list.

Рисуем прямоугольник

Упражнение

Ты тоже можешь нарисовать прямоугольник?

_images/rectangle.png

Решение

turtle.forward(100)
turtle.left(90)
turtle.forward(50)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(50)
turtle.left(90)

Дополнительно

How about a triangle? In an equilateral triangle (a triangle with all sides of equal length) each corner has an angle of 60 degrees.

Больше квадратов

Упражнение

Now, draw a tilted square. And another one, and another one. You can experiment with the angles between the individual squares.

_images/tiltedsquares.png

На изображении показан поворот черепашки на 20 градусов. Ты же можешь попробовать, например, 30 или 40.

Решение

turtle.left(20)

turtle.forward(50)
turtle.left(90)
turtle.forward(50)
turtle.left(90)
turtle.forward(50)
turtle.left(90)
turtle.forward(50)
turtle.left(90)

turtle.left(30)

turtle.forward(50)
turtle.left(90)
turtle.forward(50)
turtle.left(90)
turtle.forward(50)
turtle.left(90)
turtle.forward(50)
turtle.left(90)

turtle.left(40)

turtle.forward(50)
turtle.left(90)
turtle.forward(50)
turtle.left(90)
turtle.forward(50)
turtle.left(90)
turtle.forward(50)
turtle.left(90)