Введение в Python через модуль «Черепашка»
Введение в Python через модуль «Черепашка»- Савчук Иван Владимирович
Разделы: Информатика, Технология
Об языке
Python — высокоуровневый язык программирования общего назначения с динамической строгой типизацией и автоматическим управлением памятью, ориентированный на повышение производительности разработчика, читаемости кода и его качества. Синтаксис ядра языка минималистичен, за счёт чего на практике редко возникает необходимость обращаться к документации.
О модуле
Библиотека turtle — это расширения языка Питон, позволяющее рисовать на экране несложные рисунки. По экрану компьютера ползает маленькая черепашка (`turtle’).
Что из себя представляет «холст»
- Изначально черепашка стоит в центре всплывающего окна, размеры которого можно регулировать, и смотрит вправо
- Холст представляет из себя координатную плоскость с центром в середине и осями, направленными вправо и вверх, у каждого пикселя, соответственно, своя координата.
Команды перемещения черепашки
- forward(n) или fd(n) — Проползти вперед n шагов (пикселей).
- backward(n) или bk(n) — Проползти назад n шагов (пикселей).
- left(angle) или lt(angle) — Повернуться налево на angle градусов.
- right(angle) или rt(angle) — Повернуться направо на angle градусов.
- circle(r) — Нарисовать окружность радиуса |r|, центр которой находится слева от черепашки, если r>0 и справа, если r<0.
- circle(r,angle) — Нарисовать дугу радиуса |r| и градусной мерой angle.
- Дуга рисуется против часовой стрелки, если r>0 и по часовой стрелке, если r<0.
- goto(x,y) — Переместить черепашку в точку с координатами (x,y).
Команды рисования черепашки
- down() — Опустить перо. После этой команды черепашка начнет оставлять след при любом своем передвижении.
- up() — Поднять перо.
- width(n) — Установить ширину следа черепашки в n пикселей.
- сolor(s) — Установить цвет следа черепашки в s. s должно быть текстовой строкой,
- заключенной в кавычки, с названием цвета (по-английски), например, «red», «yellow», «green» и т.д.
- begin_fill() — Используется для начала рисования закрашенной области.
- end_fill() — Используется для окончания рисования закрашенной области.
Прочие команды
- reset() — Возврат черепашки в исходное состояние: очищается экран, сбрасываются все параметры, черепашка устанавливается в начало координат, глядя вправо.
- сlear() — Очистка экрана.
- write(s) — Вывести текстовую строку s в точке нахождения черепашки.
- radians() — Установить меру измерения углов (во всех командах черепашки) в радианы.
- degrees() — Установить меру измерения углов (во всех командах черепашки) в градусы. Этот режим включен по умолчанию.
- shape(«turtle») — Установить черепашке форму «черепашка»
- speed(n) — Установить скорость черепашки
Зачем мы используем модуль?
- Это интересно. Многие дети (да и взрослые) любят рисовать и создавать, проявляя свое творческое начало
- Вычисление текущей позиции черепашки, угла поворота и тп развивают у детей математические способности и способности анализировать ситуацию
- Дети приходят разного «уровня» программирования, с помощью черепашки можно в интересной форме понять основы языка, включая табуляцию, переменные, условный оператор, циклы, функции
- Когда мы начинаем решать задачи, ребята уже знают как писать простые программы
Как проходят занятия
- Знакомим детей со средой
- Знакомим детей с модулем и простыми командами черепашки
- Рисуем простейшие фигуры — квадрат, треугольник, звезда. ..
- Фигуры посложнее — снеговик, смайлик…
- Показываем, что многие вещи будет проще сделать с помощью цикла
- Вводим понятие переменной, а затем и функции, тем самым рисунок перестает быть статичным
Далее вас ограничивает лишь ваша фантазия.
Программа для рисования квадрата
import turtle | # Подключаем модуль |
turtle.forward(20) | # Проползти 20 пикселей вперед |
turtle.left(90) | # Поворот влево на 90 градусов |
turtle.forward(20) | |
turtle.left(90) | |
turtle.forward(20) | # Рисуем вторую сторону квадрата |
turtle.left(90) | # Рисуем третью сторону квадрата |
turtle.forward(20) | # Рисуем четвертую сторону |
И еще раз квадрат:
import turtle # | Подключаем модуль |
turtle for i in range(4): | # Повторить 4 раза |
turtle. forward(20) | # Проползти 20 пикселей вперед |
turtle.left(90) | # Поворот влево на 90 градусов |
А можно так:
import turtle # | Подключаем модуль |
turtle i=0 | #создаем счетчик |
while i<4: | |
turtle.forward(20) | # Проползти 20 пикселей вперед |
turtle.left(90) | # Поворот влево на 90 градусов |
i+=1 | # увеличиваем счетчик |
С помощью функции:
def square(n): | # Создаем функцию с параметром |
n for i in range(4): | # Повтори 4 раза |
turtle. forward(n) | # Проползти 20 пикселей вперед |
turtle.left(90) | # Поворот влево на 90 градусов |
import turtle | # Подключаем модуль |
turtle a=int(input()) | #Вводим длину стороны square(a) #Вызываем функцию |
Интересные факты
• Сохраняя, нельзя называть программу по имени модуля, т.е. «turtle», иначе Python пытаться импортировать вашу программу.
• Можно создать несколько черепашек. Для этого достаточно присвоить им имена. Например:
t1=turtle.Turtle()
t2=turtle.Turtle()
При этом можно управлять ими по отдельности, обращаясь по имени, например:
t1.shape(«arrow»)
t2.shape(«turtle»)
А если посложнее?
Для «продвинутых» ребят есть задания и посложнее. Например с помощью черепашки можно сделать ковёр и треугольник Серпинского.
Спасибо за внимание!
Удачи в экспериментах с черепашкой!
Функции — Python documentation
Функции — Python documentationФункции – это многократно используемые фрагменты программы. Они позволяют дать
имя определенному блоку команд для того, чтобы выполнять этот блок поуказанному
имени в любом месте программы и сколь угодно много раз. Это называется вызовом
функции. Мы уже использовали встроенные функции: print
, input
, fd
.
Пример создания функции:
def say_hello(): print('Hello') say_hello() # вызов функции say_hello() # ещё один вызов функции
Параметры функций
Функции могут принимать параметры, т.е. некоторые значения, передаваемые функции для того, чтобы она что-либо сделала с ними.
Параметры указываются в скобках при объявлении функции и разделяются запятыми. Аналогично мы передаём значения, когда вызываем функцию. Обратите внимание на терминологию: имена, указанные в объявлении функции, называются параметрами, тогда как значения, которые передаются в функцию при её вызове – аргументами.
Пример:
from turtle import * def star(s): for i in range(5): fd(s) lt(144) star(200) # вызов функции с аргументом s = 200
Управление черепашкой
-
seth
(angle) -
setheading
(angle) Устанавливает текущее направление черепашки на заданный угол
-
goto
(x, y) Перемещает черепашку в заданные координаты. Если перо опущено, черепашка будет оставлять след при перемещении
-
begin_fill
() Заставляет черепашку начинать отслеживать замкнутые фигуры
-
end_fill
() Закрашивает все замкнутые фигуры, которая создала черепашка при рисовании
-
pencolor
(color) Устанавливает цвет следа черепашки в
-
fillcolor
(color) Устанавливает цвет закрашивания фигур черепашкой в
color
Задачи
Напишите функцию для рисования треугольника.
Создадите функцию, которая будет рисовать закрашенный треугольник
Напишите функцию
sgoto(x, y)
, которая будет перемещать черепашку в заданные координаты, так чтобы при этом она не оставляла следОбъединив функции выше, нарисуйте еловый лес
Нарисуйте пейзаж ночного леса со звёздным небом и луной
Домашнее задание
Напишите программу, которая будет рисовать правильный шестиугольник из шести правильных треугольников. Создание треугольника вынести в отдельную функцию, рисовать шестиугольник через цикл
Нарисуйте улыбающийся смайлик. Для этого вынесите в отдельную функцию рисование круга заданного размера.
- Versions
- latest
- Downloads
- html
- On Read the Docs
- Project Home
- Builds
Free document hosting provided by Read the Docs.
Введение в информатику — 1) Черепахи
В Python есть много модулей , которые предоставляют очень мощные функции, которые мы можем использовать в наших собственных программах. Некоторые из них могут отправлять электронную почту или получать веб-страницы. Другие позволяют нам выполнять сложные математические вычисления. В этой главе мы познакомим вас с модулем, который позволяет нам создавать объект данных под названием черепаха , который можно использовать для рисования изображений.
Графика Черепахи, как известно, основана на очень простой метафоре. Представьте, что у вас есть черепаха, которая понимает по-английски. Вы можете сказать своей черепахе выполнять простые команды, такие как идти вперед и повернуть направо. Когда черепаха движется, если ее хвост касается земли, она рисует линию (оставляя след) во время движения. Если вы скажете черепахе поднять хвост, она все равно сможет двигаться, но не оставит следа. Как вы увидите, с помощью этой простой возможности вы можете сделать несколько удивительных рисунков.
Примечание
Черепахи — это весело, но настоящая цель этой главы — немного больше узнать о Python и развить нашу тему вычислительного мышления или мышления как программиста . Большая часть описанного здесь Python будет рассмотрена более подробно позже.
Давайте попробуем пару строк кода на Python, чтобы создать новую черепашку и начать рисовать простую фигуру, например прямоугольник. Мы будем ссылаться на нашу первую черепаху, используя имя переменной alex, но помните, что вы можете выбрать любое имя, которое пожелаете, если будете следовать правилам именования из предыдущей главы.
Показанная программа рисует только первые две стороны прямоугольника. После строки 4 у вас будет прямая линия, идущая от центра холста для рисования вправо. После строки 6 у вас будет холст с черепахой и нарисованным наполовину прямоугольником. Нажмите кнопку запуска, чтобы попробовать и посмотреть.
Вот несколько вещей, которые вам нужно понять об этой программе.
Первая строка указывает Python загрузить модуль с именем черепаха
. Этот модуль дает нам два новых типа, которые мы можем использовать: Черепаха типа
и Экран типа
. Точечная нотация черепаха. Черепаха
означает «Тип черепахи, определенный в модуле черепахи» . (Помните, что Python чувствителен к регистру, поэтому имя модуля черепаха
со строчной буквой t отличается от типа Turtle
из-за прописной буквы T.)
Затем мы создаем и открываем то, что модуль черепахи называет экран (мы бы предпочли называть его окном или, в случае этой веб-версии Python, просто холстом), который мы присваиваем переменной wn. Каждое окно содержит canvas — область внутри окна, на которой мы можем рисовать.
В строке 3 мы создаем черепаху. Переменная alex предназначена для ссылки на эту черепаху. Эти первые три строки настраивают нас на то, что мы готовы сделать какой-нибудь рисунок.
В строках 4-6 мы приказываем объекту alex двигаться и поворачиваться. Мы делаем это, вызывая или активируя методы Алекса — это инструкции, на которые все черепашки умеют реагировать.
Заполнить прямоугольник …
Измените программу, добавив команды, необходимые для завершения прямоугольника alex .
Перепутанные программы
черепаха-2-2: Следующая программа использует черепаху для рисования заглавной буквы L, как показано на рисунке слева от этого текста, но линии перепутаны. Программа должна выполнить все необходимые настройки: импортировать модуль черепахи, получить окно для рисования и создать черепаху. Помните, что при создании черепаха смотрит на восток. Черепаха должна повернуться лицом на юг и провести линию длиной 150 пикселей, а затем повернуться лицом на восток и провести линию длиной 75 пикселей. Мы добавили компас к изображению, чтобы указать направления на север, юг, запад и восток.
Пустые строки разделяют код на «блоки» — держите каждый блок вместе, но располагайте их в правильном порядке.
черепаха-2-3: Следующая программа использует черепаху для рисования галочки, как показано слева, но линии перепутаны. Программа должна выполнить все необходимые настройки: импортировать модуль черепахи, получить окно для рисования и создать черепаху. Черепаха должна повернуться лицом на юго-восток, нарисовать линию длиной 75 пикселей, затем повернуться лицом на северо-восток и провести линию длиной 150 пикселей. Мы добавили компас к изображению, чтобы указать направления на север, юг, запад и восток. Северо-восток находится между севером и востоком. Юго-восток находится между югом и востоком.
черепаха-2-4: Следующая программа использует черепаху для рисования одной линии на запад, как показано слева, но линии программы перепутаны. Программа должна выполнить все необходимые настройки: импортировать модуль черепахи, получить окно для рисования и создать черепаху. Затем черепаха должна повернуться лицом на запад и нарисовать линию длиной 75 пикселей.
Объект может иметь различные методы — то, что он может делать — и он также может иметь атрибутов — (иногда называемых свойствами ). Например, каждая черепаха имеет атрибут цвета . Вызов метода alex.color(«red») сделает alex красным, и линия, которую он рисует, тоже будет красной.
Цвет черепахи, ширина ее пера (хвоста), положение черепахи в окне, направление ее взгляда и т. д. — все это часть ее текущего состояния . Точно так же объект окна имеет цвет фона, который является частью его состояния.
Существует довольно много методов, которые позволяют нам изменять объекты черепахи и окна. В приведенном ниже примере мы показываем только пару show и прокомментировали только те строки, которые отличаются от предыдущего примера. Обратите также внимание, что мы решили назвать наш объект черепахи 9.0003 тесс.
Последняя строка играет очень важную роль. Переменная wn относится к окну, показанному выше. Когда мы вызываем его метод exitonclick
, программа приостанавливает выполнение и ждет, когда пользователь щелкнет мышью где-нибудь в окне. Когда происходит это событие щелчка, ответом является закрытие окна черепахи и выход (остановка выполнения) программы Python.
Каждый раз, когда мы запускаем эту программу, всплывает новое окно рисования, которое остается на экране до тех пор, пока мы не нажмем на него.
Расширьте эту программу…
- Измените эту программу так, чтобы перед созданием окна она предлагала пользователю ввести желаемый цвет фона. Он должен хранить ответы пользователя в переменной и изменять цвет окна в соответствии с пожеланиями пользователя. (Подсказка: вы можете найти список разрешенных названий цветов по адресу http://www.w3schools.com/colors/colors_names.asp. Он включает в себя довольно необычные названия, такие как «PeachPuff» и «HotPink».)
- Сделайте аналогично изменения, позволяющие пользователю во время выполнения устанавливать цвет тесс.
- Сделайте то же самое для ширины ручки Тесс. Подсказка: ваш диалог с пользователем вернет строку, но метод tess
pensize
ожидает, что его аргумент будетint
. Это означает, что вам нужно преобразовать строку в int, прежде чем передать ее вpensize
.
черепаха-2-8: Можете ли вы создать код для создания этого изображения?
черепаха-2-9: Следующая программа использует черепаху для рисования заглавной буквы L белого цвета на синем фоне, как показано слева,
но строки перепутаны. Программа должна выполнить все необходимые настройки, создать черепаху и установить размер пера на 10. Затем черепаха должна повернуться лицом на юг, нарисовать линию длиной 150 пикселей, повернуться лицом на восток и нарисовать линию, которая 75 пикселей в длину. Наконец, настройте окно так, чтобы оно закрывалось, когда пользователь щелкает в нем.
черепаха-2-10: Следующая программа использует черепаху для рисования белой буквы T на зеленом фоне, как показано слева, но линии перепутаны. Программа должна выполнить все необходимые настройки, создать черепаху и установить размер пера на 10. После этого черепашка должна повернуться лицом на север, нарисовать линию длиной 150 пикселей, повернуться лицом на запад и нарисовать линию. это 50 пикселей в длину. Далее черепашка должна повернуться на 180 градусов и нарисовать линию длиной 100 пикселей. Наконец, настройте окно так, чтобы оно закрывалось, когда пользователь щелкает в нем.
Черепашьи спирали | Изучайте Python с HolyPython.com
Turtle Spirals
Рисование с помощью Python Turtles может быть очень увлекательным! Вы можете нарисовать красивые турбины с черепахой Python, используя коды из этого урока.
Мы объясним, как вы можете изменить код, чтобы придать своим рисункам больше вкуса, и попрактиковаться в написании кода во время рисования или наоборот, кто знает 🙂
Holy Python поддерживается читателями. Когда вы покупаете по ссылкам на нашем сайте, мы можем получать партнерскую комиссию.
Simple Turtle Spiralимпортная черепаха a = черепаха.Черепаха() для i в диапазоне (100): а.вперед(5+я) а.право(15) черепаха.done()
Регулировка шага и направления черепахи (вперед, назад, влево, вправо)
Сделаем спираль более плотной, уменьшив шаг ( a.forward(2+i/4)
и
a.left(30-i/12)
) и увеличение количества витков ( для i в диапазоне (240):
).
импортная черепаха a = черепаха.Черепаха() для я в диапазоне (240): а.вперед(2+i/4) а.левый(30-я/12) черепаха.готово()
Меньшая петля (последовательность Фибоначчи)
Последовательность Фибоначчи – это интересная числовая последовательность, иногда называемая золотым сечением, которую можно проследить во многих природных закономерностях во вселенной, таких как цветы, раковины, улитки, деревья, листья, бури, галактики и отпечатки пальцев.
Вот попытка рисования пропорций Фибоначчи. Не совсем то, но близко.
Спираль Черепахи — Раковина или Форма Фибоначчиa = черепаха.Turtle() для я в диапазоне (30): а.вперед(20+я) а.слева(30 - и/1,5) черепаха.готово()
Черепаха с цветами
Вы можете избежать черно-белых или моноцветных рисунков, реализуя метод .color()
черепахи.
Моноцветный рисунок черепахи (используется только один цвет)
Давайте добавим немного цвета к нашим рисункам Черепахи. a.color(colors[0])
Спираль черепахи – раковина или форма Фибоначчи (красного цвета)импортная черепаха colors = ["красный", "синий", "зеленый", "серый", "оранжевый", "черный"] a = черепаха.Черепаха() для я в диапазоне (30): а.вперед(20+я) а.слева(30 - 1/1,5) a.color (цвета [0]) черепаха.готово()
Многоцветный рисунок черепахи (переход по списку разных цветов)
Еще одна забавная идея — перебирать разные цвета. Этого можно легко добиться, определив набор цветов и некоторую базовую итерацию цикла с помощью черепахи.
Список цветов повторяется с помощью оператора «Модуль» ( %
) в Python. Если вы хотите прочитать обширную статью об операторах Python, включая Modulus, вы можете нажать здесь.
a.color(colors[i%6])
импортная черепаха colors = ["красный", "синий", "зеленый", "серый", "оранжевый", "черный"] a = черепаха.Черепаха() для я в диапазоне (30): а.вперед(20+я) а.слева(30 - 1/1,5) a.color(цвета[i%6]) черепаха.done()
Вот и все. То, что вы можете делать с Python Turtle, зависит от вашего воображения, поэтому ограничений нет. Попробуйте что-то, что имеет отношение к вам, и наслаждайтесь практикой!
Если вы считаете, что черепаха интересна, у нас есть очень обширный учебник, который объясняет различные концепции Python (такие как if-else, пользовательские функции, пользовательский ввод, операторы, типы данных, циклы и т. д.) через черепаху здесь: Python Turtle Tutorial.