Параметр
аргумент
Это понятие впервые встречается на программе «Электроника, программирование и инженерная практика» — примерно 13-14 лет (7-8 класс).
Окошко в команде или блоке, куда подставляют своё значение: «повторить 10», «ждать 1 секунду». Команда одна — результаты разные.
Бланк приглашения с пропуском: текст напечатан один раз, а в пропуск каждый раз вписывают новое имя.
Найти окошки-параметры в трёх блоках Scratch («повторить …», «идти … шагов», «ждать … секунд») и сказать, что меняется при разных числах.
Величина, которую функция получает при вызове: в blink(5) параметр times принимает значение 5 — и функция мигает пять раз. Внутри функции параметр ведёт себя как переменная, но создаётся заново при каждом вызове и исчезает после него. Параметры делают один код пригодным для разных данных.
Добавить своему блоку Scratch «нарисуй фигуру» параметр «число сторон» и вызвать его с 3, 4 и 6; в скетче Arduino поменять число миганий blink(times) в вызове, не трогая тело функции.
Параметр — имя в определении функции, аргумент — значение при вызове: в def hello(name) name — параметр, в hello('Саша') строка — аргумент. Аргументы бывают позиционными и именованными (print('а', end='')); параметру в определении можно задать значение по умолчанию. В Python аргумент — ссылка на объект: изменяемый объект (список) функция может изменить изнутри, а присваивание параметру нового значения снаружи не видно.
Найти ошибку: функция def area(w, h) вызвана как area(5); прочитать TypeError и исправить двумя способами — вторым аргументом и значением по умолчанию h=1.
Частое заблуждение
«Параметр — настройка, которую функция запоминает навсегда». Нет: при каждом вызове параметр получает значение заново и исчезает, когда вызов завершён.