Таблица Scratch-Python

Приветствую! Здесь вы наверняка найдете, что ищете. Примеры в лаборатории рассчитаны на то, что мы разбираем что-то конкретное.

Текущая статья посвящена соответствие блоков Scratch 3.0 и конструкций Python.

Поэтому за теорией по текущей теме вам — в энциклопедию. Если ещё не погружались, то маршрут прост:

  1. Основы
  2. Система и сеть
  3. Данные и разметка
  4. Код и разработка
  5. Языки
  6. Искусственный интеллект
  7. Проект
  8. Инфраструктура и безопасность
  9. Спин-офф

Обязательно пройдитесь.

А теперь приступим к нашему предмету.

Теория и соседние материалы
Энциклопедия — разделы по вашей теме.

Переход с блоков на текст

С чего начать

Перед таблицей полезно пройти главу «Блоки» и поработать в мини-проектах 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