Область видимости
Это понятие впервые встречается на программе «Разработка и инженерия для старшеклассников» — примерно 15-17 лет (9-11 класс).
Правило, откуда переменную «видно»: созданная внутри функции существует только там — снаружи её как будто нет.
Вещи в доме: то, что в твоей комнате, видно только из неё, а вещи в прихожей — из любой комнаты.
Найти в Scratch-проекте переменную «только для этого спрайта» и «для всех спрайтов»; сказать, из каких скриптов видна каждая.
Часть программы, где действует имя переменной. Локальная объявлена внутри функции: видна только в ней и исчезает при выходе; глобальная видна во всей программе. Одинаковые имена в разных функциях — разные, независимые переменные. В Scratch то же: переменная «для всех спрайтов» или «только для этого».
Найти ошибку в скетче Arduino, где переменная объявлена внутри setup(), а используется в loop(); объяснить её и перенести объявление в глобальную область.
Область текста программы, где имя связано со своим объектом. Python ищет имя по правилу LEGB: локальная → объемлющая → глобальная → встроенная; присваивание в функции создаёт локальное имя, если нет объявления global/nonlocal. В C++ область ограничена блоком {}; внутреннее имя затеняет внешнее (shadowing). Краевой случай: чем шире область, тем больше скрытых связей — глобальных переменных избегают.
Предсказать вывод: глобально x = 10, функция выполняет x = 5 и print(x), после вызова print(x) снаружи; проверить в Python, добавить global x и сравнить.
Частое заблуждение
«Одно имя — одна переменная на всю программу». Нет: локальные переменные с одинаковыми именами в разных функциях — независимые ячейки.