- Не работает Turtle
- Как в Питоне запустить Черепашку?
- Задаем движение черепахи
- Пример. Рисуем квадрат.
- Пример. Движение со случайной длиной и поворотом
- Не работает импорт модуля turtle
- Как ускорить функцию «черепахи» питона и остановить ее замерзание в конце
- 3 ответа
- «Черепашья графика» при помощи turtle, рисование при помощи алгоритма
- Начало работы. Движения
- Геометрические фигуры
- Самостоятельно:
- Решения
- Изменяем параметры во время движения
- Больше программирования!
- Координаты на плоскости
- Круг и точка
- Самостоятельно:
- Решения
- Делаем фигуры равновеликими
- Другие полезные функции:
- Пример двух рисунков – экземпляров класса Turtle() – на одном полотне
- Итог: функции и классы на примере turtle
- Графический интерфейс средствами библиотеки turtle.
Не работает Turtle
«, line 1, in
import turtle
File «C:\Users\Acer\AppData\Local\Programs\Python\Python39\turtle .py», line 2, in
t = turtle.Pen()
AttributeError: partially initialized module ‘turtle’ has no attribute ‘Pen’ (most likely due to a circular import)
>>>
Ничего в этом сама не понимаю, не знаю, чем помочь ребенку. Почитала на форумах про аналогичные проблемы. Ответ один: неправильно назван файл, сделайте имя файла, отличное от имени модуля. Мы проверили весь компьютер, удалили все созданные файлы, содержащие слово turtle, но безрезультатно. Скажите, где искать этот файл, который нужно переименовать?
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Не работает импорт модуля turtle
У меня не работает импорт в python, Вот что мне пишет python: Python 3.7.3 (default, Apr 3.
почему данный шедевр не работает: import turtle t = turtle.Pen t.reset() ошибка.
Про Turtle
Ребята, здравствуйте. Посоветуйте, подскажите книги или ресурсы по Turtle.
Помогите разобраться с этими задачи,знаю,как квадрат сделать,но не понимаю,как запрограммировать в.
lny2203,
запустите интерпритатор
введите
import os
os.getcwd()
в проводнике перейдите в эту директорию, если там есть файлы либо директории с именем turtle, переименуйте их
вот он C:\Users\Acer\AppData\Local\Programs\Python\Python39\turtle .py
Добавлено через 9 секунд
там пробел еще в имени)
Источник
Как в Питоне запустить Черепашку?
Согласитесь, что со стороны норм русского языка и логики вещей, название нашего нового занятия читается почти абсурдно. На самом деле, всё верно. Просто это был мой первый запрос в Гугл по поиску работы графического модуля в Python. Ведь без графики, любая программа выглядит довольно уныло. Тоже самое относится и к Питону.
Данный модуль подключается всего одной строкой кода!
Это вызывает выполнение некоторых визуальных действий в окне с графическим модулем.
По умолчанию, в среде вызывается фигура в виде треугольника. Это, на мой взгляд, не очень красиво. Гораздо интересней, как например в Скретч, заставить двигаться более «живого» персонажа. Чтобы переключить маркер на черепаший вид нужно прописать следующую команду:
Знающим английский язык, сразу всё понятно — слово «turtle» по-русски переводится именно, как черепаха. С помощью метода .shape() и параметра turtle мы сможем вызвать нашу черепаху.
Задаем движение черепахи
Запустить-то черепашку мы запустили, только вот как её теперь заставить двигаться? Для этого нужно применить следующие методы:
Пример. Рисуем квадрат.
В итоге будет нарисован квадрат со стороной 150 пикселей, как показано на этом рисунке.
Пример. Движение со случайной длиной и поворотом
В данном примере черепашка будет передвигаться вперёд на некоторое расстояние, менять цвет и поворачиваться на 90 градусов против часовой стрелки.
Чтобы сэкономить вам время на изучение этого урока, я написал все основные пояснения по программе в комментариях самого кода.
Источник
Не работает импорт модуля turtle
У меня не работает импорт в python, Вот что мне пишет python:
Python 3.7.3 (default, Apr 3 2019, 19:16:38)
[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
Type «help», «copyright», «credits» or «license» for more information.
>>> import turtle
Traceback (most recent call last):
File » «, line 1, in
File «/usr/lib/python3.7/turtle.py», line 107, in
import tkinter as TK
ModuleNotFoundError: No module named ‘tkinter’
Error in sys.excepthook:
Traceback (most recent call last):
File «/usr/lib/python3/dist-packages/apport_python_hook.py», line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File «/usr/lib/python3/dist-packages/apport/__init__.py», line 5, in
from apport.report import Report
File «/usr/lib/python3/dist-packages/apport/report.py», line 30, in
import apport.fileutils
File «/usr/lib/python3/dist-packages/apport/fileutils.py», line 23, in
from apport.packaging_impl import impl as packaging
File «/usr/lib/python3/dist-packages/apport/packaging_impl.py», line 24, in
import apt
File «/usr/lib/python3/dist-packages/apt/__init__.py», line 23, in
import apt_pkg
ModuleNotFoundError: No module named ‘apt_pkg’
Original exception was:
Traceback (most recent call last):
File » «, line 1, in
File «/usr/lib/python3.7/turtle.py», line 107, in
import tkinter as TK
ModuleNotFoundError: No module named ‘tkinter’
>>> colors = [‘red’, ‘purple’, ‘blue’,
. ‘green’, ‘yellow’, ‘orange’]
>>> t = turtle.pen()
Traceback (most recent call last):
File » «, line 1, in
NameError: name ‘turtle’ is not defined
Error in sys.excepthook:
Traceback (most recent call last):
File «/usr/lib/python3/dist-packages/apport_python_hook.py», line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File «/usr/lib/python3/dist-packages/apport/__init__.py», line 5, in
from apport.report import Report
File «/usr/lib/python3/dist-packages/apport/report.py», line 30, in
import apport.fileutils
File «/usr/lib/python3/dist-packages/apport/fileutils.py», line 23, in
from apport.packaging_impl import impl as packaging
File «/usr/lib/python3/dist-packages/apport/packaging_impl.py», line 24, in
import apt
File «/usr/lib/python3/dist-packages/apt/__init__.py», line 23, in
import apt_pkg
ModuleNotFoundError: No module named ‘apt_pkg’
Original exception was:
Traceback (most recent call last):
File » «, line 1, in
NameError: name ‘turtle’ is not defined
>>> t.bgcolor(‘black’)
Traceback (most recent call last):
File » «, line 1, in
NameError: name ‘t’ is not defined
Error in sys.excepthook:
Traceback (most recent call last):
File «/usr/lib/python3/dist-packages/apport_python_hook.py», line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File «/usr/lib/python3/dist-packages/apport/__init__.py», line 5, in
from apport.report import Report
File «/usr/lib/python3/dist-packages/apport/report.py», line 30, in
import apport.fileutils
File «/usr/lib/python3/dist-packages/apport/fileutils.py», line 23, in
from apport.packaging_impl import impl as packaging
File «/usr/lib/python3/dist-packages/apport/packaging_impl.py», line 24, in
import apt
File «/usr/lib/python3/dist-packages/apt/__init__.py», line 23, in
import apt_pkg
ModuleNotFoundError: No module named ‘apt_pkg’
Original exception was:
Traceback (most recent call last):
File » «, line 1, in
NameError: name ‘t’ is not defined
>>> for x in range(360):
. t.pencolor(x%6)
. t.width(x / 100 + 1)
. t.forward(x)
. t.left(59)
.
Кто-нибуть знает что мне cделать
ОС: Lunux Ubuntu 18.4
Среда: atom
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Источник
Как ускорить функцию «черепахи» питона и остановить ее замерзание в конце
Я написал программу для черепашек на python, но есть две проблемы.
- Это слишком медленно для больших чисел, мне было интересно, как я могу ускорить черепаху.
- Он замерзает после того, как заканчивается, и когда на него нажимают, говорит «не отвечает»
Кстати: я на версии 3.2!
3 ответа
- Установите turtle.speed() на fastest .
- Используйте функциональность turtle.mainloop() для работы без обновления экрана.
- Отключите обновление экрана с помощью turtle.tracer(0, 0) , затем в конце сделайте turtle.update()
Черепаха Python работает очень медленно, потому что обновление экрана выполняется после каждой модификации черепахи.
Вы можете отключить обновление экрана, пока вся работа не будет выполнена, а затем покрасить экран, это устранит миллисекундные задержки, поскольку экран яростно пытается обновить экран после каждой смены черепахи.
Например:
Этот код создает тысячу черепах в случайных местах и отображает картинку примерно за 200 миллисекунд.
Если бы вы не отключили обновление экрана с помощью команды turtle.tracer(0, 0) , потребовалось бы несколько минут, чтобы попытаться обновить экран 3000 раз.
Для справки, медленная черепаха является существующей проблемой. Даже при максимальной скорости черепаха может занимать много времени на таких вещах, как фракталы. Ник ODell переопределил черепаху для скорости здесь: Скрыть окно черепахи?
Источник
«Черепашья графика» при помощи turtle, рисование при помощи алгоритма
Черепашья графика, turtle – принцип организации библиотеки графического вывода, построенный на метафоре Черепахи, воображаемого роботоподобного устройства, которое перемещается по экрану или бумаге и поворачивается в заданных направлениях, при этом оставляя (или, по выбору, не оставляя) за собой нарисованный след заданного цвета и ширины.
Проще: черепашка ползает по экрану и рисует. Мы управляем черепашкой на плоскости при помощи программы.
Начало работы. Движения
В первой строке необходимо добавить:
Мы командуем черепашкой простыми словами на английском языке. left, right – поворот налево и направо, forward и backward – движение вперед и назад. В программе каждое действие – вызов функции из модуля turtle. Простая программа:
- Поворот направо на 90 градусов
- Движение вперед на 100 шагов (пикселей)
- Поворот налево на 90 градусов
- Движение назад на 100 шагов
Не похоже на черепашку, это ползающая стрелка! Исправим это:
Отлично! Теперь это черепашка, пусть и монохромная. Дополнительно, функция exitonclick() позволяет закрыть окно и завершить выполнение программы кликом мышкой по окну.
А еще можно использовать сокращенные названия функций: fd(100) вместо forward(100), rt вместо right, lt вместо left, bk вместо backward.
Геометрические фигуры
Рисуем простые геометрические фигуры:
- Прямая: просто движение вперед
- Квадрат: вперед, поворот на 90 градусов и так 4 раза. Повторение команд – значит, можно выполнить их в цикле for!
- Пятиконечная звезда: вперед, поворот на 144 градусов и так 5 раз.
Если мы хотим выполнить инструкции n раз, мы пишем их в цикле
Далее идут инструкции с отступом в 4 пробела. Код с отступами – тело цикла. Когда цикл завершается, отступы больше не ставятся.
Скучно рисовать одинокие фигуры. Поэтому мы приготовились рисовать сразу несколько и теперь создаем отдельный экземпляр класса Turtle для каждой фигуры. Так мы можем менять цвет линии и другие параметры отдельно для каждой фигуры. Потом, когда мы захотим дорисовать или изменить параметры фигуры, у нее будут сохранены старые параметры. Их не надо будет устанавливать заново, как это было бы без отдельных экземпляров класса для каждой фигуры.
Звезда рисуется также:
Самостоятельно:
- Нарисуйте пятиконечную звезду (угол поворота 144 градуса).
- Квадрат и звезду в одной программе, на одном графическом поле, но с разными экземплярами класса Turtle.
- Восьмиконечную звезду (угол поворота 135 градусов).
- Фигуру из анимации в начале страницы.
Решения
Изменяем параметры во время движения
При отрисовке простых фигур черепашка возвращалась в исходную точку, и программа останавливалась, ожидая, когда будет закрыто окно. Если в цикле продолжить рисовать по прежним инструкциям, фигура будет нарисована заново по уже нарисованным контурам. А если ввести дополнительный угол поворота?
Мы также добавили:
- color(‘red’, ‘green’) определяет цвет линии и цвет заполнения. Черепашка теперь зеленая!
- begin_fill() и end_fill() обозначают начало и конец заполнения
Больше программирования!
Напишем обобщенную программу рисования выпуклых равносторонних многоугольников. num_sides – количество граней, side_length – длина грани, angle – угол поворота.
Что будет, если на каждом шаге увеличивать длину пути? В первый день 10 шагов, во второй – 20, далее 30, 40 и так до 200:
Координаты на плоскости
Положение на плоскости определяется двумя числами, x и y:
Черепашку в программе можно перемещать функцией goto(x, y). x и y – числа, или переменные. goto(0, 0) переместит черепашку в начало координат.
Вместо звезды-спирали мы получили 5 линий, расходящихся из точки начала координат.
Круг и точка
Не хватает плавных изгибов? На помощь приходят функции dot() и circle():
- изменили заголовок окна функцией title(),
- установили толщину линии – pensize(),
- установили цвет линии – pencolor(),
- Подняли черепашку перед перемещением – penup() и опустили после – pendown().
Самостоятельно:
- Используя код из примеров и функцию goto(), нарисовать галерею из 5 или более многоугольников на одном поле. Использовать экземпляр класса turtle.Turtle().
- Нарисованные многоугольники закрасить разными цветами. Пробуйте стандартные цвета или их шестнадцатеричное представление. Не забудьте кавычки вокруг названия или кода цвета!
Решения
Делаем фигуры равновеликими
Площадь квадрата со стороной 100 пикселей – 10 000 квадратных пикселей. Вычислим площади всех фигур со стороной 100 от треугольника до 7-угольника. Формула площади правильного многоугольника содержит тангенс, поэтому «поверим на слово» результату, зависимости количество углов (вершин) – площадь:
- 3 – 4330.13
- 4 – 10000
- 5 – 17204.77
- 6 – 25980.76
- 7 – 36339.12
Изобразим ее на графике:
Получается, что площадь 7-угольника в 36339.12 / 4330.13 = 8.4 раза больше, чем площадь треугольника! Это очень заметно на рисунке:
Чтобы фигуры стали равновеликими, надо сделать длину грани вместо константы 100 – переменной, которая зависит от количества углов.
Как: приведем все площади к 10000. Для треугольника площадь увеличится на 10000 / 4330.13 = 2.31 раза. Для 7-угольника – уменьшится в 36339.12 / 10000 = 3.63 раз. Значит, стороны должны измениться в 1.52 и 0.52 раз соответственно, то есть, до 152 и 32.7 пикселей (снова «верим на слово»). Эту зависимость можно нащупать «на глаз», в чем и заключалось задание.
Наша программа без труда масштабируется до большего количества фигур:
Программа, в которой вычисляются точные значения:
Как построить график (если кто захочет):
Другие полезные функции:
- turtle.setup(800, 400) устанавливает размеры окна в 800 на 400 пикселей
- turtle.setworldcoordinates(0, 0, 800, 400) устанавливает начало координат в точку 800, 400
- turtle.tracer(0, 0) отключает анимацию
- setpos(x, y) устанавливает черепашку (курсор) в позицию с координатами (x, y)
- seth(x) устанавливает направление в градусах. 0 – горизонтально направо (на восток), 90 – вверх (на север) и так далее
- hideturtle() скрывает черепашку (или стрелку, курсор)
- speed(x) изменяет скорость рисования. Например, speed(11) – почти моментальная отрисовка простых фигур
- clear() очищает холст от нарисованного
- reset() очищает холст и возвращает курсор в начало координат
Пример двух рисунков – экземпляров класса Turtle() – на одном полотне
- Задали название окна,
- создали экземпляр класса Turtle под именем circ. Все изменения сохраняются для класса circ;
- цвет линии и заполняющий цвет,
- форму и размер курсора,
- установили 10-ю скорость
- продвинулись на 150 пикселей вперед от старта,
- начали заполнять фигуру цветом,
- нарисовали круг
- закончили заполнять цветом,
- Объявили переменную n и присвоили ей значение 10,
- создали новый экземпляр класса Turtle под именем t. У него нет настроек экземпляра класса circ!
- В цикле while: пока переменная n меньше или равна 50, рисовать круги радиусом n;
- после нарисованного круга увеличить переменную n на 10.
- Алгоритм рисования кругов прекратит рисовать круги после 4-го круга.
Итог: функции и классы на примере turtle
- Функция – фрагмент программного кода, к которому можно обратиться по имени. Иногда функции бывают безымянными.
- У функции есть входные и выходные параметры. Функция fd(150) – фрагмент программного кода, который двигает курсор вперед на заданное во входном значении количество пикселей (150). Выходного значения у функции fd() нет.
- Когда функцию надо выполнить, после ее названия пишут круглые скобки. fd – просто название, ничего не происходит. fd(100) – функция выполняется с входным параметром 100. Обычно названия функций пишут с маленькой буквы.
- Класс – программный шаблон для создания объектов, заготовка для чего-то, имеющего собственное состояние. Мы можем нарисовать прямоугольник и назвать его кнопкой, но это еще не кнопка, потому что у нее нет собственных свойств и поведения. Прямоугольник надо научить быть самостоятельной, отличной от других, кнопкой.
- Turtle – класс, его имя пишется с большой буквы. через оператор присваивания = мы создаем экземпляр класса: circ = turtle.Turtle(). Turtle – класс (шаблон, трафарет, заготовка), circ – его экземпляр (рисунок, набор уникальных цветов, штрихов и свойств). На картинке выше видно, что экземпляр класса circ богат установленными свойствами, а экземпляр t обладает свойствами по умолчанию: тонкая черная линия, треугольный курсор.
- Программирование с использованием классов и их экземпляров будем называть объектно-ориентированным программированием, ООП. объектно-ориентированный подход необходим при построении графического интерфейса пользователя, GUI.
Графический интерфейс средствами библиотеки turtle.
Нарисуем прямоугольник и сделаем его кнопкой: при нажатии кнопка исчезает и появляется круг:
- Задали название и размеры (500 на 500 пикселей) окна,
- Создали экземпляр класса btn1 и спрятали курсор (черепашку),
- Нарисовали прямоугольник 80 на 30;
- подняли перо и перешли на координаты (11, 7);
- написали Push me шрифтом Arial 12-го размера, нормальное начертание. Попробуйте вместо normal ключевые слова bold (полужирный), italic (наклонный);
Источник