Таблица Scratch-Python
Приветствую! Здесь вы наверняка найдете, что ищете. Примеры в лаборатории рассчитаны на то, что мы разбираем что-то конкретное.
Текущая статья посвящена соответствие блоков Scratch 3.0 и конструкций Python.
Поэтому за теорией по текущей теме вам — в энциклопедию. Если ещё не погружались, то маршрут прост:
- Основы
- Система и сеть
- Данные и разметка
- Код и разработка
- Языки
- Искусственный интеллект
- Проект
- Инфраструктура и безопасность
- Спин-офф
Обязательно пройдитесь.
А теперь приступим к нашему предмету.
Переход с блоков на текст
Перед таблицей полезно пройти главу «Блоки» и поработать в мини-проектах Scratch.
Синтаксис Python — в программе на Python.
Рисование «как в Scratch, но текстом» — Turtle и глава Turtle.
Промежуточный шаг с блоками и текстом одновременно — Edublocks.
Обязательный каркас Python
Любой перенос из Scratch начинается с того, что в Python нет жёлтого блока-события — код выполняется сверху вниз. Базовый шаблон:
# main.py — точка входа (аналог «когда щёлкнут по ⚑»)
def main():
# здесь логика, которая в Scratch висела на флаге
pass
if __name__ == "__main__":
main()
Для рисования на экране чаще подключают модуль turtle (см. примеры Turtle):
import turtle
t = turtle.Turtle()
# .. команды движения ..
turtle.done() # окно не закроется сразу
Стартовые пары «Scratch → Python»
Квадрат пером
когда щёлкнут по ⚑
опустить перо
повторить (4)
идти (100) шагов
повернуть ↻ на (90) градусов
конец
import turtle
t = turtle.Turtle()
t.pendown()
for _ in range(4):
t.forward(100)
t.left(90)
turtle.done()
Счётчик и условие
когда щёлкнут по ⚑
установить [счёт v] в (0)
когда щёлкнут по этому спрайту
изменить [счёт v] на (1)
сказать [Мяу!] (1) сек
если <(счёт) = (5)> то
сказать [Устал…] (2) сек
остановить [все v]
конец
Спросить имя и поздороваться
когда щёлкнут по ⚑
спросить [Как тебя зовут?] и ждать
сказать (объединить [Привет, ] (ответ))
name = input("Как тебя зовут? ")
print(f"Привет, {name}")
Случайное число
установить [загадка v] в (случайное число от (1) до (10))
import random
secret = random.randint(1, 10)
Сводная таблица по категориям
События
| Блок Scratch | Python | Комментарий |
|---|---|---|
когда щёлкнут по ⚑ |
if __name__ == "__main__": |
Старт программы |
когда щёлкнут по этому спрайту |
обработчик в Tkinter / Pygame | В консоли — input() |
когда нажата клавиша [→] |
while + опрос клавиш |
В Scratch реакция автоматическая |
передать сообщение [старт] |
флаг, очередь, callback | Связь между частями программы |
когда я получу сообщение [старт] |
if started: / подписка на событие |
Имя сообщения должно совпадать |
Управление
| Блок Scratch | Python | Комментарий |
|---|---|---|
повторить (N) |
for _ in range(N): |
Известное число шагов |
всегда |
while True: |
Добавьте time.sleep(0.02) |
повторять пока <…> |
while условие: |
Проверка перед телом цикла |
если <> то … конец |
if …: + отступ |
Отступ = «карман» блока |
иначе |
else: |
Вторая ветка |
ждать (0.5) сек |
time.sleep(0.5) |
Пауза в секундах |
остановить [все] |
break / return / sys.exit() |
Зависит от задачи |
Движение и перо
| Блок Scratch | Python (turtle) |
Комментарий |
|---|---|---|
идти (10) шагов |
t.forward(10) |
Шаг вперёд |
повернуть ↻ на (90) |
t.left(90) |
Угол в градусах |
идти в x: (0) y: (0) |
t.goto(0, 0) |
Координаты сцены Scratch |
опустить перо |
t.pendown() |
Рисовать линию |
поднять перо |
t.penup() |
Движение без следа |
стереть всё |
t.clear() |
След; clearscreen() — всё окно |
Переменные и операторы
| Блок Scratch | Python | Комментарий |
|---|---|---|
установить [x v] в (0) |
x = 0 |
Присваивание |
изменить [x v] на (1) |
x += 1 |
То же для -=, *= |
сказать [текст] |
print("текст") |
Вывод в консоль |
спросить [вопрос] и ждать |
input("вопрос") |
Строка от пользователя |
(a) + (b) |
a + b |
Арифметика |
(a) и (b) |
a and b |
Логическое «и» |
случайное число от (1) до (10) |
random.randint(1, 10) |
Оба конца включены |
добавить [x] к [список v] |
items.append("x") |
Список Python |
Полные примеры
1. Радужный многоугольник
Scratch (фрагмент из мини-проектов):
когда щёлкнут по ⚑
опустить перо
повторить (36)
изменить цвет ▶ на (10)
идти (20) шагов
повернуть ↻ на (10) градусов
конец
Python:
import turtle
t = turtle.Turtle()
t.speed(0)
t.pendown()
palette = ["red", "orange", "gold", "green", "blue", "violet"]
for i in range(36):
t.pencolor(palette[i % len(palette)])
t.forward(20)
t.left(10)
turtle.done()
2. Движение стрелками (упрощённо)
В Scratch цикл всегда проверяет клавиши каждый кадр. В Python без GUI — упрощённый вариант через Turtle и опрос (для игр удобнее Pygame):
Scratch-эквивалент:
когда щёлкнут по ⚑
всегда
если <клавиша [→ v] нажата?> то
изменить x на (5)
конец
если <клавиша [← v] нажата?> то
изменить x на (-5)
конец
ждать (0.02) сек
конец
3. Сбор монет
когда щёлкнут по ⚑
установить [счёт v] в (0)
когда я коснусь [Монета v]
изменить [счёт v] на (1)
спрятать
score = 0
player = {"x": 0, "y": 0}
coins = [{"x": 80, "y": 40, "visible": True}]
def try_collect():
global score
for coin in coins:
if not coin["visible"]:
continue
if abs(player["x"] - coin["x"]) < 25 and abs(player["y"] - coin["y"]) < 25:
score += 1
coin["visible"] = False
print("Счёт:", score)
Типичные ошибки при переносе
| В Scratch | Что ломается в Python | Как исправить |
|---|---|---|
Блок «вне» если, хотя должен быть внутри |
Действие выполняется всегда | Проверьте отступы (4 пробела) |
= вместо == в условии |
Python присвоит значение | Сравнение — только == |
Цикл всегда без ждать |
100% загрузка CPU | time.sleep(0.02) в теле while True |
Имя переменной счёт с кириллицей |
Работает, но в учебниках — латиница | score, lives, speed |
| Ожидание «клика по спрайту» в консоли | input() — не координаты |
Tkinter, Pygame или упрощённый input() |
Переход Scratch → Python — это замена обёртки при том же скелете: цикл остаётся циклом, условие — условием, переменная — переменной.
Меняются скобки, отступы и способ запуска.
Подробный разбор на примере «кота» — в главе «Блоки», § «От графики к тексту».
Куда дальше
| Цель | Материал |
|---|---|
| Ещё блоки Scratch | Примеры скриптов Scratch — примеры скриптов, Scratch — мини-проекты с разбором блоков — мини-проекты |
| Справочник редактора | Scratch §1–§17 |
| Первый полноценный Python | Программа на Python |
| Рисование | Turtle — Lab, Turtle — энциклопедия |
| Блоки + текст Python | Edublocks |
| Задачи ЕГЭ / олимпиады | Алгоритмы на Python — ЕГЭ и олимпиадка — алгоритмы на Python |