Шаг 1: Загрузка Python
Первым шагом является загрузка установочного файла Python с официального сайта. Можно написать в поисковике "python скачать" или перейдите на веб-сайт python.org и выберите раздел "Downloads" (Загрузки).
Там вы найдете последнюю версию Python для вашей операционной системы. Нам сразу предлагают её установить, сейчас это версия Python 3.12.2 и она является актуальной. Давайте её и скачаем, нажмём на "Download Python 3.12.2".
После загрузки установочного файла откройте его, запустив двойным кликом по нему. В некоторых случаях вам может потребоваться разрешение администратора для установки программного обеспечения на вашем компьютере.
Давайте начнём установку "python-3.12.2-amd64.exe". Нажимаем на него дважды на скаченный файл, и нажимаем запустить в появившемся окне.
Выбираем обязательно "Add python.exe to PATH" и нажимаем на "Install now".
За вопрос "Разрешить этому приложению вносить изменения на вашем устройстве?" - Нажимаем "Да".
Происходит процесс установки, он может занять некоторое время, пожалуйста подождите.
Шаг 5: Завершение установки
После завершения установки вы можете закрыть установочное окно.
Ctrl+Shift+X
).
Теперь у вас установлен Python в Visual Studio Code! Удачи! ????
Turtle требуется открытия отдельного окна с нарисованной фигурой, удобнее всего работать в Visual Studio Code или Replit (онлайн-среда разработки кода). Так же гайд как установить Visual Studio Code и Python у нас есть на данном курсе.
Рекомендуется использовать версию Python 3.11 и ниже, для версии 3.12 и выше ещё не обновили пакет Turtle.
Прописывается следующим образом:
import turtle
Или импортировать все функции сразу:
from turtle import *
Примечание: больше методов Turtle вы можете посмотреть на официальном сайте модуля Turtle: https://digitology.tech/docs/python_3/library/turtle.html
В Python Turtle координатная плоскость используется для определения положения и перемещения черепашки. Понимание системы координат важно для точного управления рисованием.
Основные понятия:
Координатная плоскость: Двумерное пространство, определяемое двумя перпендикулярными осями:
Ось X (горизонтальная): Положительные значения идут вправо, отрицательные — влево.
Ось Y (вертикальная): Положительные значения идут вверх, отрицательные — вниз.
Начало координат (0, 0): Точка пересечения осей X и Y.
Координаты (x, y): Пара чисел, определяющая положение точки на плоскости. Первое число — координата по оси X, второе — по оси Y.
Черепашка - это наш виртуальный художник, который будет рисовать на экране. Создадим объект черепашки:
t = turtle.Turtle()
Или можно называть черепашки как вам требуется:
pencil = turtle.Turtle()
pencil_triangle = turtle.Turtle()
pencil_square = turtle.Turtle()
Теперь переменная t представляет нашу черепашку. Черепашек может быть несколько, это никак не ограничено, главное правильно их именовать, если это новые черепашки.
Но также можно если у вас одна черепашка, использовать просто turtle.ваш_метод()
Если у вас будут ошибки с запуском или повторным запуском черепашки, лучше всего писать программы в обычном .py
файле
Управление черепашкой:
t.goto(x, y): Перемещает черепашку в точку с координатами (x, y).
import turtle
t = turtle.Turtle()
# Двигаем черепашку на 100 единиц на Х и Y
t.goto(100, 100)
# Завершаем работу, но не закрываем окно программы
turtle.done()
t.setx(x): Перемещает черепашку по горизонтали в точку с координатой x, сохраняя текущую координату y.
import turtle
# Создаем черепашку
t = turtle.Turtle()
# Двигаем черепашку на 100 единиц на Х
t.setx(100)
# Завершаем работу, но не закрываем окно программы
turtle.done()
t.sety(y): Перемещает черепашку по вертикали в точку с координатой y, сохраняя текущую координату x.
import turtle
# Создаем черепашку
t = turtle.Turtle()
# Двигаем черепашку на 100 единиц на Y
t.sety(100)
# Завершаем работу, но не закрываем окно программы
turtle.done()
У черепашки есть несколько основных методов для перемещения и рисования:
forward(distance): Двигает черепашку вперед на заданное расстояние.
import turtle
# Создаем черепашку
t = turtle.Turtle()
# Двигаем черепашку вперед на 100 единиц
t.forward(100)
# Завершаем работу, но не закрываем окно программы
turtle.done()
backward(distance): Двигает черепашку назад на заданное расстояние.
import turtle
# Создаем черепашку
t = turtle.Turtle()
# Двигаем черепашку назад на 100 единиц
t.backward(100)
# Завершаем работу, но не закрываем окно программы
turtle.done()
right(angle): Поворачивает черепашку вправо на заданный угол (в градусах).
import turtle
# Создаем черепашку
t = turtle.Turtle()
# Цикл для рисования 4 сторон квадрата
for _ in range(4):
t.forward(50) # Двигаемся вперёд на 50 единиц
t.right(90) # Поворачиваем направо на 90 градусов
# Цикл для рисования 4 сторон квадрата
# Завершаем работу, но не закрываем окно программы
turtle.done()
left(angle): Поворачивает черепашку влево на заданный угол (в градусах).
import turtle
# Создаем черепашку
t = turtle.Turtle()
# Цикл для рисования 4 сторон квадрата
for _ in range(4):
t.backward(50) # Двигаемся назад на 50 единиц
t.left(90) # Поворачиваем влево на 90 градусов
# Цикл для рисования 4 сторон квадрата
# Завершаем работу, но не закрываем окно программы
turtle.done()
Треугольник:
import turtle
t = turtle.Turtle()
# Цикл для рисования 3 сторон треугольника
for _ in range(3):
t.forward(75) # Двигаемся вперед на 75 единиц
t.left(120) # Поворачиваем налево на 120 градусов
# Завершаем работу, но не закрываем окно программы
turtle.done()
import turtle
t = turtle.Turtle()
# Цикл для рисования спирали
for i in range(100):
t.forward(i * 5) # Двигаемся вперед на увеличивающееся расстояние
t.right(90) # Поворачиваем направо на 90 градусов
# Завершаем работу, но не закрываем окно программы
turtle.done()
import turtle
t = turtle.Turtle()
# Цикл для рисования 5 лучей звезды
for _ in range(5):
t.forward(100) # Двигаемся вперед на 100 единиц
t.right(144) # Поворачиваем направо на 144 градуса
# Завершаем работу, но не закрываем окно программы
turtle.done()
Черепашка всегда оставляет след когда куда либо перемещается, но чтобы перемещение проходило без рисования линий необходимо перед перемещением Поднять Перо, затем для дальнейшего рисования - Опустить Перо
import turtle
# Создаем черепашку
t = turtle.Turtle()
# Поднимаем перо
t.penup()
# Двигаем черепашку на 100 единиц на Х и Y
t.goto(100, 100)
# Опускаем перо
t.pendown()
# Завершаем работу, но не закрываем окно программы
turtle.done()
import turtle
# Создаем черепашку
t = turtle.Turtle()
# Рисуем круг
t.circle(25)
# Поднимаем перо
t.penup()
# Двигаем черепашку на 100 единиц на Х и Y
t.goto(100, 100)
# Опускаем перо
t.pendown()
# Рисуем круг
t.circle(25)
# Завершаем работу, но не закрываем окно программы
turtle.done()
Мы можем настроить внешний вид линии, которую рисует черепашка:
pensize(width): Изменяет толщину линии
pencolor(color): Изменяет цвет линии. Можно использовать название цвета ("red", "green") или RGB значения (например, (255, 0, 0) для красного).
Пример:
import turtle
t = turtle.Turtle()
# Список цветов
colors = ["red", "green", "blue", "purple"]
# Рисуем 4 квадрата
for i in range(4):
t.pencolor(colors[i]) # Устанавливаем цвет линии
t.pensize(i + 1) # Устанавливаем толщину линии (1, 2, 3, 4)
for _ in range(4):
t.forward(50)
t.right(90)
t.penup() # Поднимаем черепашку (черепашка не рисует)
t.forward(75) # Перемещаемся вправо для следующего квадрата
t.pendown() # Опускаем черепашку (черепашка рисует)
# Завершаем работу, но не закрываем окно программы
turtle.done()
1. Определения цвета для закраски - turtle.fillcolor(color)
Эта функция устанавливает цвет, которым будет закрашена фигура.
В качестве аргумента color можно передать:
Название цвета: Например, "red", "blue", "green" и т.д.
Шестнадцатеричный код цвета: Например, "#FF0000" для красного, "#0000FF" для синего.
RGB-значения: Кортеж из трёх чисел (0-255) для красного, зелёного и синего компонентов. Например, (255, 0, 0) для красного.
2. Начало закрашивания - turtle.begin_fill()
Эта функция сообщает черепашке, что мы начинаем рисовать фигуру, которая должна быть закрашена.
После вызова этой функции все последующие линии, которые рисует черепашка, будут считаться частью закрашиваемой области.
3. Заканчивание закрашивания - turtle.end_fill()
Эта функция сообщает черепашке, что мы закончили рисовать фигуру и её нужно закрасить установленным ранее цветом.
Закрашивание происходит автоматически после вызова этой функции.
import turtle
t = turtle.Turtle()
# Здесь вы пишите ваш код
def draw_square(side_length):
# Начинаем закрашивать область фигуры, идёт перед циклом по рисованию фигуры
t.begin_fill()
# Цикл рисования фигру
for _ in range(4):
t.forward(side_length)
t.right(90)
# Заканчиваем закрашивание области фигуры, находится после цикла и обязательно, вне цикла закраски
t.end_fill()
# Установка цвета для закрашивания области фигуры
t.fillcolor('red')
# Вызов Функции - Рисовать квадрат со стороной 100
draw_square(100)
turtle.done()
Важные моменты:
begin_fill()
и end_fill()
должны использоваться вместе.
Фигура должна быть замкнутой, иначе закрашивание не произойдет.
Можно закрашивать любые фигуры, которые рисует черепашка, не только квадраты.
В модуле Turtle, функция t.speed(n)
позволяет контролировать скорость движения черепахи, влияя на то, как быстро она рисует линии и фигуры.
t.speed(n)
Устанавливает скорость для конкретной черепахи t
Аргументы:
n
Число, определяющее скорость.
Диапазон значений:
0 или 999
Самая быстрая скорость.
1 - 10
Промежуточные скорости. С увеличением значения скорость рисования увеличивается.
import turtle
Создаём объект нашей черепашки, чтобы им управлять t = turtle.Turtle()
По умолчанию наша черепашка идёт от центра вправо. Для отрисовки квадрата нам необходимо нарисовать 4 его стороны. Рисуем первую сторону t.forward()
В скобках у forward
мы пишем кол-во пикселей. Давайте напишем 150
.
Теперь нам необходимо развернуться ровно на 90 градусов и также нарисовать сторону у квадрата. t.left(90)
Проделываем так 4 раза. Поскольку у нас 4 стороны у квадрата.
В итоге мы получаем следующий код:
Данный код нам должен отрисовать следующий квадрат:
for... in...
В итоге мы получаем следующий код:
Данный код, как и в предыдущем примере должен отрисовать нам следующий квадрат:
def square()
Изначально функция не будет принимать никаких значений! Давайте поместим туда наш цикл из предыдущего шага.В итоге мы получаем следующий код:
И у нас рисуется такой же квадрат как и в двух предыдущих примерах:
Если мы продолжим вызывать наши функции, то у нас картинка не изменится. Единственное, что произойдёт - это то, что мы останемся на месте. То есть мы будем рисовать одно и то же. Давайте поменяем нашу функцию так, чтобы рисовалось несколько квадратов различных размеров.
А вот эта задача уже посложнее, поскольку нам нужно изменять параметр функции, чтобы мы могли рисовать несколько квадратов. Шаги буду выглядеть следующим образом:
def square()
параметр pixels
Этот параметр будет отвечать за размер в пикселях отрисовки стороны квадрата. Таким образом, мы сможем рисовать несколько квадратов, просто вызывая функцию и меняя значения аргумента при вызове. То есть код следующий: def square(pixels)
pixels
Как описано в прошлом шаге, данный параметр нам необходим для отрисовки стороны квадрата. За отрисовку у нас отвечает t.forward()
Давайте вместо конкретного значения туда подставим значения pixels
То есть код следующий: t.forward(pixels)
square(50)
и меняя значения 50 на иное. Для этого при каждом вызове в качестве аргумента мы будем передавать различные числа.Данный код позволяет нам отрисовать следующие квадраты:
square
в цикл для отрисовки большого количества квадратов:for... in...
Тогда код, где мы вызываем функции будет следующим: step = 20 # Прописываем шаг для увеличения стороны квадрата
for _ in range(10): # Прописываем значение для кол-ва квадратов
square(step) # Передаём в square() аргумент step
step += 20 # Увеличиваем каждую итерацию шаг step
2. Давайте прибавим скорости нашей черепашке. Для этого воспользуемся функцией speed()
Исходный код для нашего узора будет следующим:
А вот получившийся узор:
step = 20 # Прописываем шаг для увеличения стороны квадрата
for _ in range(10): # Прописываем значение для кол-ва квадратов
t.right(15) # Добавляем угол наклона при отрисовки каждого квадрата
square(step) # Передаём в square() аргумент step
step += 20 # Увеличиваем каждую итерацию шаг step
2. Давайте поменяем немного наши исходные данные, чтобы узор поместился в наш экран.
step = 30 # Прописываем шаг для увеличения стороны квадрата
for _ in range(60): # Прописываем значение для кол-ва квадратов
t.right(10) # Добавляем угол наклона при отрисовки каждого квадрата
square(step) # Передаём в square() аргумент step
step += 4 # Увеличиваем каждую итерацию шаг step
3. Теперь наша задача сделать наш рисунок цветным. Давайте сначала всё разукрасим одним цветом. Для этого нам необходимо воспользоваться методом модуля turtle
. Он так и называется color
В данном этапе без разницы в какой функции мы укажем цвет. Либо в функции отрисовки сторон квадрата, либо в функции отрисовок несколько квадратов. Давайте напишем в функции отрисовки нескольких квадратов.
step = 30 #прописываем шаг для увеличения стороны квадрата
for _ in range(60):#прописываем значение для кол-ва квадратов
t.color('red')#указываем цвет каждого квадрата
t.right(10) #добавляем угол наклона при отрисовки каждого квадрата
square(step)#передаём в square() аргумент step
step += 4#увеличиваем каждую итерацию шаг step
4. Теперь давайте будем чередовать цвет квадратов. Для этого создаём список
list_colours = ['red', 'green', 'yellow', 'orange', 'pink']
И тут у нас есть два способа: либо мы будем последовательно чередовать цвет, либо случайным образом мы будем выбирать из списка.
Метод 1: С помощью random
Метод 2: Последовательное перебор элементов списка
В итоге мы получаем вот такой рисунок: