Простые циклы
Цикл - как повторить код много раз.Пример: квадрат (Без цикла)
Когда мы рисуем квадрат, то повторяем одинаковый код (copy/paste).# -*- coding: utf-8 -*- import turtle import time t = turtle.Turtle() t.shape("turtle") t.width(3) t.fd(200) # повторяем эти строки t.left(90) # повторяем эти строки t.fd(200) t.left(90) t.fd(200) t.left(90) t.fd(200) t.left(90) turtle.done()
Пример: квадрат (с циклом)
Код, который повторяем, можно записать в цикле. Повторяем n разfor i in range(n): повторяем эти команды

# -*- coding: utf-8 -*- import turtle import time t = turtle.Turtle() t.shape("turtle") t.width(3) # до цикла for i in range(4): t.fd(200) # повторяем эти строки t.left(90) # повторяем эти строки # после цикла turtle.done()
Пример: Лестница
- Как написать цикл:
- Сначала найдите какой код нужно повторить много раз - напишите его в цикле.
- Один раз ДО повторов - напишите это ДО цикла.
- Один раз ПОСЛЕ повторов - напишите это ПОСЛЕ цикла.
3 ступеньки.
Надо нарисовать 1 ступеньку и повторить 3 раза.
Сначала нужно повернуться, чтобы рисовать первую ступеньку и запомнить точку старта. Это делаем один раз до повторения.
В конце возвращаемся в точку старта. Возвращаемся в точку старта один раз и после повторения.
# -*- coding: utf-8 -*- import turtle import time t = turtle.Turtle() t.shape("turtle") t.width(3) # 1 раз ДО повторения p0 = t.pos() # запомнили старт. t.seth(90) # повернулись, чтобы начать рисовать много ступенек for i in range(3): # повторяем 3 раза рисунок 1 ступеньки t.fd(50) t.right(90) t.fd(50) t.left(90) # 1 раз ПОСЛЕ повторения t.up() # вернулись на место старта t.goto(p0) turtle.done()
# -*- coding: utf-8 -*- import turtle import time def steps(size, n): # 1 раз ДО повторения p0 = t.pos() # запомнили старт в переменную p0 t.seth(90) # повернулись, чтобы начать рисовать много ступенек for i in range(n): # повторяем n раза рисунок 1 ступеньки t.fd(size) t.right(90) t.fd(size) t.left(90) # 1 раз ПОСЛЕ повторения t.up() # вернулись на место старта p0 t.goto(p0) t = turtle.Turtle() t.shape("turtle") t.width(3) steps(50, 3) turtle.done()
Задача 1: Квадрат
Напишите ФУНКЦИЮsq(size)
для рисования квадрата со стороной size
. В функции используйте
for n in range(4)

Задача 2: Треугольник1
Напишите функциюtriangle(size)
для рисования равностороннего треугольника со стороной size
. В функции используйте
for n in range(3)

Изменяем число шагов цикла (число в range()
)
Задача 3: Черточки
Написать функциюdash(n)
, которая рисует n
черточек.
Получить вот такую картинкуНарисовать ВСЕ черточки.

Задача 4: "Простые" многоугольники
Написать функциюpoli(n, size)
для рисования n-угольника
со стороной size

Задача 5: Спираль
Написать функциюspirale(n)
, которая рисует n
отрезков спирали

Запомнить и изменить переменные в цикле.
Пример: веер-1
Нарисуем веер из n линий цвета col. Каждая линия будет размера size. Напишем функцию veer(n, col, size)import turtle import time def veer(n, col, size): # 1 раз ДО повторения t.color(col) # установить цвет for i in range(n): # повторяем n раза рисунок 1 линии t.fd(size) t.fd(-size) t.left(30) t = turtle.Turtle() t.shape("turtle") t.width(3) veer(6, 'yellow', 100) t.seth(-15) veer(7, 'red', 120) turtle.done()
Пример: веер-2 (размер линий тоже изменяется)
# -*- coding: utf-8 -*- import turtle import time def veer(n, col, size, d): # 1 раз ДО повторения t.color(col) # установить цвет for i in range(n): # повторяем n раза рисунок 1 линии t.fd(size) t.fd(-size) t.left(30) size += d # в цикле изменяем значение переменной size t = turtle.Turtle() t.shape("turtle") t.width(3) veer(6, 'yellow', 60, 20) t.seth(-15) veer(7, 'red', 50, 20) turtle.done()
Задача 6: Многоугольники
Задача 6а: функция tri(size, ang)
Напишите функциюtri(size, ang)
для рисования равнобедренного треугольника. size
размер двух равных сторон. ang
угол между этими сторонами.
Подсказка: Запомнить точки p1
и p2
.
for n in range
для этой функции не нужен.

Задача 6б: функция poligon(size, n)
Написать функциюpoligon(size, n)
для рисования многоугольника.size
размер одной стороны n
количество углов.Многоугольник нужно составить из треугольников (вызвать функцию
tri(size, ang)
).
Получить вот такую картинку:

Задача 7: Спираль2
Написать функциюspiral2(n, start_size, delta)
для рисования n
отрезков спирали.start_size
размер начального витка,delta
на сколько меняется размер для каждого нового витка
Получить вот такие картинки:

Функции в цикле.
Задача 8: Квадратики
Написать функциюsq(size, col1, col2)
для рисования 1 закрашенного квадрата, заданного размера.Написать функцию
sqn(size, n)
, которая рисует n
квадратов в квадрате. В этой функции внутри цикла использовать функцию
sq
рисования 1 квадрата
Получить вот такие картинки:

Задача 9: Полоски
Пара - это 2 предмета. Написать функциюpolosa(n)
для рисования вот такой полоски. n
количество пар квадратиков. Использовать функцию для рисования квадрата.

manyP(n,m)
для рисования вот такой картинки.n
размер (пары квадратиков) по горизонтали,m
размер по вертикали.

Задача 10: Как шахматы
Написать функциюchess(n,m)
для рисования вот такой картинки.n
размер (пары квадратиков) по горизонтали,m
размер (пары линий) по вертикали.
Использовать функцию polosa(n)
из задачи Полоски.

Задача 11: Луч снежинки.
Написать функциюray(size, n)=
.size
размер луча, n
количество веток в луче.
Размер самой верхней ветки : sizeOfRay=size/(3*n)
, размер каждой ветки ниже изменяется так: sizeOfRay *= 2

Задача 12: Снежинки (узор)
Написать функциюsnee(size, n)
для рисования снежинки.size
размер луча снежинки,n
количество ветвей на луче.


Немного о range
Автор: Овсянникова Т.В.