Нажми — и увидишь, что делает команда
- ⏱ Сколько займёт
- 40–60 минут, 6 шагов. Каждый шаг заканчивается результатом на экране.
- 💻 Что нужно
- Телефон или компьютер. Редактор открывается прямо в браузере, ставить ничего не надо.
- ⏸ Если прервёшься
- Ничего не потеряется: прогресс сохраняется на этом устройстве. Вернёшься — продолжишь с того же шага.
- 🎓 Чему научишься
- переменные · арифметика · связь числа и формы
Число, у которого есть имя
На потолке купола выложена роза ветров — шестнадцать лучей расходятся от центра.
«Не рисуй по одному лучу, — Сова стучит пальцем по столу. — Спроси себя: сколько лучей? И пусть число само решит, какой получится фигура».
Поменял число — поменялась форма. Это и есть настоящая карта: одна формула, тысяча ветров.
Это анимация исполнения кода: команды идут строка за строкой, и лучи появляются в том же порядке. Свою розу ветров ты соберёшь из переменной и цикла — пара приёмов в кадре чуть хитрее, до них дойдём позже.
Читать текстом
Сегодня одно число будет управлять всей фигурой.
1 # ТАК ПРИХОДИТСЯ ПРАВИТЬ БЕЗ ПЕРЕМЕННОЙ:
2 for i in range(6): ← поменять тут
3 forward(90)
4 right(60) ← и не забыть тут!
5
6 # забыл второе — фигура не замкнётся
Два числа связаны между собой: 6 сторон требуют поворота на 60°. Меняешь одно — обязан поменять и другое, иначе фигура разъедется. Компьютер об этой связи не знает, помнить приходится тебе.
1 from turtle import *
2
3 sides = 6 # ЗАПОМНИЛИ число под именем
4 angle = 360 / sides # посчитали угол сами (angle)
5
6 for i in range(sides):
7 forward(90)
8 right(angle)
9
10 done()
Теперь смотри: sides = 6 — это как подписать коробку и положить туда число. А строка 4 считает угол сама из этого числа. Меняешь одну шестёрку на любое другое — и всё пересчитывается автоматически.
Коробка с подписью
Переменная — это коробка с подписью. В неё кладут значение, а потом всюду пишут имя вместо числа. Компьютер сам подставит содержимое, когда дойдёт до строки.
Хорошее имя экономит время. Через месяц откроешь свой код и не вспомнишь, что такое «a». А «скорость_рыбки» поймёшь мгновенно — и даже другой человек поймёт.
Проверка · Что напечатает эта программа?
n = 5 · n = n + 3 · print(n)
Зачем считать угол как 360 / sides?
Оба верных ответа — +10 дублонов.
Важная мелочь, о которой не пишут в учебниках. Настоящий Python на компьютере спокойно понимает русские имена переменных. А браузерные редакторы — в том числе наш «Python в кармане» — нет: они используют упрощённую версию языка и падают с ошибкой bad token. Правило простое: в браузере пиши латиницей, на компьютере — как удобнее. Кстати, во всём мире имена переменных пишут латиницей именно поэтому: чтобы код работал везде.

- 1Верхние строки — место для коробок с подписямиСейчас тут настройки пера. Ты допишешь рядом две свои строки: sides = 8 — имя для числа сторон, и angle = 360 / sides — угол, который считается сам. Имена только латиницей: русское «сторон» браузерный редактор не понимает и падает с SyntaxError: bad token.
- 2Цикл внизу — сюда подставишь именаВместо range(4) станет range(sides), вместо right(90) — right(angle). Числа уходят из цикла, остаются имена — и вся фигура меняется одной цифрой наверху, а не в трёх местах сразу.
- 3Палитра «Знаки»Тут лежат = и / — из них собирается формула angle = 360 / sides. Само число 360 бери в соседней палитре «Числа», оно там есть готовой кнопкой вместе с 45, 90, 120 и 144.
- 4Жёлтая кнопка ▶ ЗапуститьПоменял восьмёрку на 3, на 5, на 12 — и жми. Пересчитается всё разом: и количество сторон, и угол поворота. Забыть про второе число уже невозможно — в этом весь смысл переменной.
- 5Холст — считай стороныСейчас тут квадрат, четыре стороны. Поставишь sides = 8 — станет восьмиугольник, поставишь 30 — фигура почти сольётся в круг. Не замкнулась — значит, угол посчитан не из sides.
Это наш редактор «Python в кармане» со страницы /kod/ — открой её в соседней вкладке. На кадре он показан дважды: слева вкладка «Код», где ты пишешь, справа вкладка «Результат», куда программа переключится сама после запуска. Нажимай на кружки по порядку: метка покажет место, строка ниже объяснит, зачем оно.
Одно число — вся фигура
Верхний ползунок — это переменная sides. Двигаешь её — код слева переписывается сам. Именно так и работает программа с переменными: правишь одно место, меняется всё.
Запись из настоящего редактора. Смотри на строки 6–7: одно число sides задаёт и количество повторов, и угол. Поменяешь восьмёрку — фигура перестроится целиком.
1 sides = 3
2
3 while sides <= 9: # пока sides не больше 9
4 angle = 360 / sides
5 for i in range(sides):
6 forward(60)
7 right(angle)
8 sides = sides + 1 # следующая фигура на 1 сторону больше
9
10 done()
Вот фокус посильнее — новое слово while. Читается «пока»: пока условие в строке 3 верно, Python снова и снова выполняет то, что с отступом ниже, и каждый раз проверяет условие заново. Здесь переменная меняется на каждом круге (строка 8): сначала треугольник, потом квадрат, пятиугольник — и так до девятиугольника. Все они нарисуются друг за другом одной программой в десять строк. Не забудь строку 8: без неё sides никогда не вырастет и цикл не кончится.

Одна формула вместо тысячи рисунков
Когда художник рисует сто разных снежинок — это сто рисунков. Когда программист пишет формулу с числом — это бесконечно много снежинок.
Приём называется процедурная генерация. На нём стоят миры Minecraft и бесконечные уровни в мобильных играх.
В Roblox-хите Tower of Hell башню каждый раунд собирают заново из набора готовых секций — поэтому её нельзя выучить наизусть.
Вместо восьмиугольника — шестиугольник
Ровно та беда, ради которой и придумали переменные: число поменяли в одном месте, а во втором забыли. Найди начало тела цикла — ошибка живёт там.
Этот приём взрослые программисты называют «единственный источник правды». Звучит важно, а смысл простой: каждое число живёт в одном месте, а всё остальное считается из него.
Розетка
1 from turtle import *
2 speed(0)
3
4 sides = 5
5 repeats = 18 # сколько раз обернуть узор
6 angle = 360 / sides
7
8 for n in range(repeats):
9 for i in range(sides):
10 forward(70)
11 right(angle)
12 right(360 / repeats) # чуть повернуть и повторить
13
14 done()
Три переменные сверху — и вся программа управляется ими. Поставь sides = 3 — получится звёздчатый узор из треугольников. sides = 20 — почти цветок из кругов. Меняй только верхние строки, ниже трогать нечего.
Тут начинается самое затягивающее в программировании: меняешь цифру и не можешь оторваться. Сделай скриншот того узора, который понравится больше всех.
Третья галочка — суть острова. Если одно изменённое число перестраивает всю картинку, значит переменные ты понял по-настоящему, а не просто переписал код.
Панель управления узором
Ты сделаешь то же, что делают взрослые разработчики: отделишь настройки от логики. Сверху — что можно крутить, ниже — как это работает. Такой код приятно открыть даже через год.
Как сдать работу: в «Python в кармане» код сохраняется сам — закрыл страницу, вернулся, и он на месте. Кнопки «поделиться» там нет и ссылки на твою работу тоже: покажи экран взрослому или пришли скриншот — этого достаточно. Поле выше нужно, только если ты писал в другом редакторе, который выдаёт ссылку. Дай покрутить числа кому-нибудь ещё. Пусть меняют только верхние строки — и смотри, какие узоры они найдут. Иногда чужая случайная цифра даёт самое красивое.
Читать текстом
Жми — Гильдия отметит третий остров Обсерватории.